编程语言
首页 > 编程语言> > php – 使用openssl_encrypt替换Mcrypt进行3DES-ECB加密

php – 使用openssl_encrypt替换Mcrypt进行3DES-ECB加密

作者:互联网

我有一个加密方法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.它是确定性的,因此在语义上不安全.您应该至少使用像CBCCTR这样的随机模式.最好对您的密文进行身份验证,以便像padding oracle attack这样的攻击是不可能的.这可以使用经过验证的模式(如GCM或EAX)或encrypt-then-MAC方案来完成.

现在不要使用Triple DES.即使您使用192位的最大密钥大小,它也只提供112位安全性.如果使用较短的密钥大小,则它仅提供56或57位的安全性. AES会更快(处理器具有特殊的AES-NI指令集),并且具有128位的最低密钥大小更加安全.使用3DES对最大密文大小也有实际限制.见Security comparison of 3DES and AES.

标签:php,encryption,ecb,php-openssl
来源: https://codeday.me/bug/20190923/1814322.html