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