我有一个使用 mycrypt 的加密方法,密码是3des
, mode ecb
:
mcrypt_module_open ( MCRYPT_3DES, '', 'ecb', '' )
现在我想使用它来加密openssl_encrypt
,而且我没有找到des3-ecb
in openssl_get_cipher_methods()
list.
现在我想加密它使用openssl_encrypt
,而且我没有找到des3-ecb
in openssl_get_cipher_methods()
list.
It's des-ede3
。使用分组密码的对称加密需要某种操作模式 https://en.wikipedia.org/wiki/Block_cipher_mode_of_operation。如果你查看列表,你会看到类似的内容des-ede3
, des-ede3-cbc
, des-ede3-cfb
and des-ede3-ofb
。 CBC、CFB 和 OFB 都是命名的,未命名的密码必须是唯一的其他常见操作模式:ECB。
切勿使用ECB mode https://crypto.stackexchange.com/q/14487/13022。它是确定性的,因此在语义上不安全。你至少应该使用像这样的随机模式CBC https://crypto.stackexchange.com/q/22260/13022 or CTR https://crypto.stackexchange.com/a/2378/13022。最好对您的密文进行身份验证,以便像攻击一样进行攻击填充预言机攻击 https://crypto.stackexchange.com/q/18185/13022是不可能的。这可以通过 GCM 或 EAX 等身份验证模式来完成,或者使用先加密后MAC https://crypto.stackexchange.com/q/202/13022 scheme.
现在不要使用 Triple DES。即使您使用最大的密钥大小 192 位,它最多也只能提供 112 位的安全性。如果使用较短的密钥大小,则它仅提供 56 或 57 位的安全性。 AES 速度更快(处理器具有特殊的 AES-NI 指令集),而且使用最低 128 位密钥大小也更安全。 3DES 的最大密文大小也有实际限制。看3DES和AES的安全性比较 https://security.stackexchange.com/q/26179/45523.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)