way two openssl_get_cipher_methods encrypt decrypt data best and php encryption php-openssl ecb

two - php openssl_get_cipher_methods



Use openssl_encrypt para reemplazar a Mcrypt para el cifrado 3DES-ECB (1)

Tengo un método de cifrado con mycrypt y el cifrado es 3des , modo ecb :

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

Ahora quiero encriptarlo usando openssl_encrypt , y no encontré des3-ecb en la lista openssl_get_cipher_methods() .


ahora quiero encriptarlo usando openssl_encrypt , y no encontré des3-ecb en la lista openssl_get_cipher_methods() .

Es des-ede3 . El cifrado simétrico con un cifrado en bloque necesita algún tipo de modo de operación . Si mira a través de la lista, verá algo como des-ede3 , des-ede3-cbc , des-ede3-cfb y des-ede3-ofb . CBC, CFB y OFB son todos con nombre y el cifrado sin nombre debe ser el único otro modo común de operación: BCE.

Nunca use el modo ECB . Es determinista y, por lo tanto, no es semánticamente seguro. Como mínimo, debe usar un modo aleatorio como CBC o CTR . Es mejor autenticar sus textos cifrados para que los ataques como un ataque de oráculo de relleno no sean posibles. Esto se puede hacer con modos autenticados como GCM o EAX, o con un esquema de encrypt-then-MAC .

No uses Triple DES hoy en día. Solo proporciona al menos 112 bits de seguridad, incluso si utiliza el tamaño de clave más grande de 192 bits. Si se utiliza un tamaño de clave más corto, solo proporciona 56 o 57 bits de seguridad. AES sería más rápido (los procesadores tienen un conjunto especial de instrucciones AES-NI) y aún más seguro con el tamaño de clave más bajo de 128 bits. También hay un límite práctico en el tamaño máximo de texto cifrado con 3DES. Ver Comparación de seguridad de 3DES y AES .