Используйте openssl_encrypt для замены Mcrypt для шифрования 3DES-ECB

У меня есть метод шифрования с mycrypt, а шифр – 3des , mode ecb :

 mcrypt_module_open ( MCRYPT_3DES, '', 'ecb', '' ) 

Теперь я хочу зашифровать его с помощью openssl_encrypt , и я не нашел des3-ecb в openssl_get_cipher_methods() .

Related of "Используйте openssl_encrypt для замены Mcrypt для шифрования 3DES-ECB"

теперь я хочу зашифровать его, используя openssl_encrypt , и я не нашел des3-ecb в openssl_get_cipher_methods() .

Это des-ede3 . Симметричное шифрование с блочным шифрованием требует своего рода режима работы . Если вы просмотрите список, вы увидите что-то вроде des-ede3 , des-ede3-cbc , des-ede3-cfb и des-ede3-ofb . CBC, CFB и OFB все названы, а неназванный шифр должен быть единственным другим обычным режимом работы: ECB.


Никогда не используйте режим ECB . Он детерминирован и поэтому не является семантически безопасным. Вы должны, по крайней мере, использовать рандомизированный режим, например CBC или CTR . Лучше аутентифицировать ваши зашифрованные тексты, чтобы атаки, подобные атаке оскорбления , не были возможны. Это можно сделать с помощью аутентифицированных режимов, таких как GCM или EAX, или с помощью схемы шифрования-затем-MAC .

Не используйте Triple DES в наши дни. Он обеспечивает в лучшем случае 112 бит безопасности, даже если вы используете самый большой размер ключа 192 бит. Если используется более короткий размер ключа, тогда он обеспечивает только 56 или 57 бит безопасности. AES будет быстрее (у процессоров есть специальный набор инструкций AES-NI) и даже более безопасный с минимальным размером ключа 128 бит. Существует также практическое ограничение на максимальный размер зашифрованного текста с помощью 3DES. См. Сравнение безопасности 3DES и AES .