Используйте openssl_encrypt для замены Mcrypt для шифрования 3DES-ECB
У меня есть метод шифрования с mycrypt и шифр 3des
, Режим ecb
:
mcrypt_module_open ( MCRYPT_3DES, '', 'ecb', '' )
Теперь я хочу зашифровать его, используя openssl_encrypt
и не нашел des3-ecb
в openssl_get_cipher_methods()
список.
1 ответ
теперь я хочу зашифровать его использовать
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.