php mcrypt取消,准备在PHP 7.2中删除Mcrypt

这篇博客介绍了如何将使用mcrypt库的PHP AES256CBC加密代码转换为使用openssl扩展。作者面临的问题是在不丢失初始化向量(IV)的情况下,从mcrypt迁移到openssl,并提供了加密和解密函数的示例代码。文章适合对密码学有一定了解,需要进行加密库更新的PHP开发者阅读。
摘要由CSDN通过智能技术生成

因此,随着时间的推移,mcrypt将在PHP 7.2中使用。当然,还有一种选择:openssl。

我发现很难使用AES 256 CBC和保留IV从mcrypt切换到openssl。我对密码学有点陌生,所以我并不是真的一无所知,但我了解一些基础知识。

假设我有以下代码

function encrypt($masterPassword, $data)

{

$keySize = mcrypt_get_key_size(MCRYPT_RIJNDAEL_256, MCRYPT_MODE_CBC);

$ivSize = mcrypt_get_iv_size(MCRYPT_RIJNDAEL_256, MCRYPT_MODE_CBC);

$iv = mcrypt_create_iv($ivSize, MCRYPT_DEV_URANDOM);

$key = mb_substr(hash('SHA256', $masterPassword), 0, $keySize);

$encrypted = mcrypt_encrypt(MCRYPT_RIJNDAEL_256, $key, $data, MCRYPT_MODE_CBC, $iv);

return base64_encode($iv . $encrypted);

}

function decrypt($masterPassword, $base64)

{

$keySize = mcrypt_get_key_size(MCRYPT_RIJNDAEL_256, MCRYPT_MODE_CBC);

$ivSize = mcrypt_get_iv_size(MCRYPT_RIJNDAEL_256, MCRYPT_MODE_CBC);

$key = mb_substr(hash('SHA256', $masterPassword), 0, $keySize);

$data = base64_decode($base64);

$iv = substr($data, 0, $ivSize);

$encrypted = substr($data, $ivSize, strlen($data));

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

return trim($decrypted);

}

我如何“转换”此代码以使用由mcrypt插入的openssl?

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值