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 listaopenssl_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 .