如何在没有 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 here 上找到了很好的库,但它需要 PHP v5.3 或更高版本。我需要一些适用于 PHP v5.2.4 或更高版本的东西。
MCRYPT_RIJNDAEL_256
抱歉,没有任何 sane 库支持 Rijndael256。但是,它们支持标准 AES。 (如果有人正在阅读这篇文章并且您希望在 2015 年使用安全可靠的密码学,stop using mcrypt!)
Is there any alternative to this without using mcrypt
. I don't want to depends on this extension anymore.
不适用于 Rijndael256。我强烈推荐 this secure PHP encryption library,它使用行业标准 AES 实现经过身份验证的加密,由 PHP 的 OpenSSL 扩展提供。
I found good library on Github here.
对于"good"的给定定义。
- 此库附带 Rijndael 的纯PHP 实现。编写自己的密码实现从来都不是一个好主意,尤其是在 PHP.
这样的语言中
- 该代码还自由使用了
substr()
和 strlen()
,没有对 mbstring.func_overload
. 进行任何健全性检查
- 它无法提供 authenticated encryption,这在 99.9% 的情况下都是您想要的。
but it requires PHP v5.3 or later. I need something what works with PHP v5.2.4 or later
阅读 this 并请升级到 5.6。 5.2、5.3 和 5.4 分支不再接收安全更新,因此您将遇到比不安全的加密更大的问题。
我已经实现了下一个使用 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 here 上找到了很好的库,但它需要 PHP v5.3 或更高版本。我需要一些适用于 PHP v5.2.4 或更高版本的东西。
MCRYPT_RIJNDAEL_256
抱歉,没有任何 sane 库支持 Rijndael256。但是,它们支持标准 AES。 (如果有人正在阅读这篇文章并且您希望在 2015 年使用安全可靠的密码学,stop using mcrypt!)
Is there any alternative to this without using
mcrypt
. I don't want to depends on this extension anymore.
不适用于 Rijndael256。我强烈推荐 this secure PHP encryption library,它使用行业标准 AES 实现经过身份验证的加密,由 PHP 的 OpenSSL 扩展提供。
I found good library on Github here.
对于"good"的给定定义。
- 此库附带 Rijndael 的纯PHP 实现。编写自己的密码实现从来都不是一个好主意,尤其是在 PHP. 这样的语言中
- 该代码还自由使用了
substr()
和strlen()
,没有对mbstring.func_overload
. 进行任何健全性检查
- 它无法提供 authenticated encryption,这在 99.9% 的情况下都是您想要的。
but it requires PHP v5.3 or later. I need something what works with PHP v5.2.4 or later
阅读 this 并请升级到 5.6。 5.2、5.3 和 5.4 分支不再接收安全更新,因此您将遇到比不安全的加密更大的问题。