使用openssl_encrypt代替Mcrypt进行3DES-ECB加密
Use openssl_encrypt to replace Mcrypt for 3DES-ECB encryption
我有一个使用 mycrypt 的加密方法,密码是 3des
,模式 ecb
:
mcrypt_module_open ( MCRYPT_3DES, '', 'ecb', '' )
现在我想用openssl_encrypt
加密它,但我在openssl_get_cipher_methods()
列表中没有找到des3-ecb
。
now I want to encrypt it use openssl_encrypt
, and I did not find des3-ecb
in openssl_get_cipher_methods()
list.
是des-ede3
。使用分组密码的对称加密需要某种 mode of operation。如果您浏览列表,您会看到类似 des-ede3
、des-ede3-cbc
、des-ede3-cfb
和 des-ede3-ofb
的内容。 CBC、CFB 和 OFB 都是命名的,未命名的密码必须是唯一的其他常见操作模式:ECB。
切勿使用 ECB mode. It's deterministic and therefore not semantically secure. You should at the very least use a randomized mode like CBC or CTR. It is better to authenticate your ciphertexts so that attacks like a padding oracle attack are not possible. This can be done with authenticated modes like GCM or EAX, or with an encrypt-then-MAC 方案。
现在不要使用三重 DES。 即使您使用 192 位的最大密钥大小,它也最多只能提供 112 位的安全性。如果使用较短的密钥大小,则它仅提供 56 或 57 位的安全性。 AES 会更快(处理器有一个特殊的 AES-NI 指令集)并且更安全,最小密钥大小为 128 位。 3DES 的最大密文大小也有实际限制。参见 Security comparison of 3DES and AES。
我有一个使用 mycrypt 的加密方法,密码是 3des
,模式 ecb
:
mcrypt_module_open ( MCRYPT_3DES, '', 'ecb', '' )
现在我想用openssl_encrypt
加密它,但我在openssl_get_cipher_methods()
列表中没有找到des3-ecb
。
now I want to encrypt it use
openssl_encrypt
, and I did not finddes3-ecb
inopenssl_get_cipher_methods()
list.
是des-ede3
。使用分组密码的对称加密需要某种 mode of operation。如果您浏览列表,您会看到类似 des-ede3
、des-ede3-cbc
、des-ede3-cfb
和 des-ede3-ofb
的内容。 CBC、CFB 和 OFB 都是命名的,未命名的密码必须是唯一的其他常见操作模式:ECB。
切勿使用 ECB mode. It's deterministic and therefore not semantically secure. You should at the very least use a randomized mode like CBC or CTR. It is better to authenticate your ciphertexts so that attacks like a padding oracle attack are not possible. This can be done with authenticated modes like GCM or EAX, or with an encrypt-then-MAC 方案。
现在不要使用三重 DES。 即使您使用 192 位的最大密钥大小,它也最多只能提供 112 位的安全性。如果使用较短的密钥大小,则它仅提供 56 或 57 位的安全性。 AES 会更快(处理器有一个特殊的 AES-NI 指令集)并且更安全,最小密钥大小为 128 位。 3DES 的最大密文大小也有实际限制。参见 Security comparison of 3DES and AES。