我一直在使用openssl函数在php中使用AES-256-CBC加密数据。对于每一次新的加密,我都能够使用唯一的IV (用openssl_random_pseudo_bytes生成)来加密。
但是,我正在为使用aes cbc认证加密的想法而奋斗。当我要解密数据时,我如何进行基本身份验证?
我需要使用像PBKDF2、河豚或hash_hmac()这样的东西吗?
我需要用什么方法破解钥匙吗?
任何帮助都是非常感谢的。
发布于 2016-01-22 20:32:27
发布于 2016-01-23 22:56:28
但是,我正在为使用aes cbc认证加密的想法而奋斗。当我要解密数据时,我如何进行基本身份验证?
使用随机IV加密数据后,使用第二个密钥将密文和IV都放入hash_hmac()中。
如果您因为需要部署到生产中而问这个问题,请等到defuse/php-加密的第2版发布后再使用它。(它是AES-256-CTR而不是AES-256- CBC,但CTR模式比CBC模式有更少的攻击面;也就是说,如果击败HMAC,就不会有填充的甲骨文攻击。)
不要使用RNCryptor。
RNCryptor既不是按照密码编码标准写的,也不是用PHP写的,也不是用Python写的。
RNCryptor字面意思是一致的违反密码编码标准的规则1。可能还有其他尚未被发现的问题。如果您希望跨语言的可移植性,使用利伯钠。
https://stackoverflow.com/questions/34954998
复制相似问题