У меня есть метод шифрования с 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.
Никогда не используйте Режим ЕЦБ. Это детерминированный и, следовательно, не семантически безопасный. Вы должны по крайней мере использовать случайный режим, как CBC или же CTR. Лучше аутентифицировать ваши шифротексты так, чтобы атаки набивка оракула не возможно. Это можно сделать с помощью аутентифицированных режимов, таких как GCM или EAX, или с шифровать-то-MAC схема.
Не используйте Triple DES в настоящее время. Он обеспечивает в лучшем случае только 112-битную защиту, даже если вы используете самый большой размер ключа 192-битный. Если используется более короткий размер ключа, он обеспечивает только 56 или 57 бит безопасности. AES будет быстрее (процессоры имеют специальный набор команд AES-NI) и будет еще более безопасным с минимальным размером ключа 128 бит. Существует также практическое ограничение на максимальный размер зашифрованного текста в 3DES. Увидеть Сравнение безопасности 3DES и AES.
Других решений пока нет …