繁体   English   中英

如何在不使用mcrypt的情况下在PHP中解密

[英]How to decrypt in PHP without mcrypt

我已经实现了下一个使用mcrypt解密字符串的功能:

function decrypt($encrypted){

    $key = "I5G9VjmnDQ483iDwE9278ST01Rp12Mr7";
    $iv = "W3gtod2XaqHRgdo57968xys2738tl2S6";

    $iv_utf = mb_convert_encoding($iv, 'UTF-8');

    $decrypted = mcrypt_decrypt(MCRYPT_RIJNDAEL_256, $key, base64_decode($encrypted), MCRYPT_MODE_CBC, $iv_utf);

    return $decrypted;

}

如果不使用mcrypt还有其他选择吗? 我不想再依赖此扩展了。

我发现在Github上好的图书馆在这里 ,但它需要PHP V5.3或更高版本。 我需要一些适用于PHP v5.2.4或更高版本的工具。

MCRYPT_RIJNDAEL_256

抱歉,没有理智的库支持Rijndael256。 它们支持标准AES。 (如果有人正在阅读此书 ,并且您想要在2015年进行安全可靠的加密,请停止使用mcrypt

如果不使用mcrypt还有其他选择吗? 我不想再依赖此扩展了。

Rijndael256不支持。 我强烈建议您使用此安全的PHP加密库 ,该使用行业标准AES(由PHP的OpenSSL扩展提供)来实现经过身份验证的加密。

我在这里在Github上找到了很好的图书馆。

对于给定的“好”定义。

  • 该库带有Rijndael的纯PHP实现。 编写自己的密码实现绝不是一个好主意,尤其是在像PHP这样的语言中。
  • 该代码还自由使用substr()strlen() ,而没有对mbstring.func_overload进行任何健全性检查。
  • 它无法提供经过身份验证的加密 ,这在99.9%的情况下是您想要的。

但它需要PHP v5.3或更高版本。 我需要一些适用于PHP v5.2.4或更高版本的工具

阅读并请升级到5.6。 5.2、5.3和5.4分支不再接收安全更新,因此,您将遇到的问题将不仅仅限于不安全的加密。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM