由于在PHP 7.1中不推荐使用mcrypt,并且我在现有项目中使用mcrypt加密/解密了大量数据,如何将我的PHP代码从mcrypt迁移到OpenSSL?我有以下代码加密:
$encoded = base64_encode(mcrypt_encrypt(MCRYPT_RIJNDAEL_256, 'salt', 'source string', MCRYPT_MODE_ECB));
解密代码是:
$source = mcrypt_decrypt(MCRYPT_RIJNDAEL_256, 'salt', base64_decode('encoded string'), MCRYPT_MODE_ECB);
我应该在上面的示例中使用哪些openssl_
函数来获得没有编码数据转换的相同结果?
或唯一的方法是运行一个脚本,用mcrypt解密我存储的所有加密数据并用openssl编码?
由于
答案 0 :(得分:4)
OpenSSL没有Rijndael-256密码;没有相应的东西 - 你必须解密并重新加密所有东西。
但是:
以上所有内容都可以这样总结:不要自己动手,使用经过严格审查的图书馆,如defuse/php-encryption。
密码学并不简单,只需5行代码即可正常完成。