苏南大叔继续填坑,本文要填的坑就是:php如何利用mcrypt.so扩展加密数据,加密算法采用的是最常见的AES-CBC模式。在以前的文章中,苏南大叔描述了如何利用mcrypt.so解密数据了。那么,本文中,苏南大叔更加侧重于mcrypt.so加密数据。当然,也会有对应的解密算法描述。

苏南大叔:php利用mcrypt.so扩展,如何加密解密AES-CBC模式数据? - php-aes-mcrypt
php利用mcrypt.so扩展,如何加密解密AES-CBC模式数据?(图2-1)

本文测试环境:mac/php72/mcrypt.so。由于众所周知的原因,本文中大量使用了@符号来抑制错误输出,见谅。

加密数据

下面的代码是使用AES-CBC模式,加密数据的例子:

public function AesEncrypt($plaintext,$key,$iv)
{
    $plaintext = trim($plaintext);
    if ($plaintext == '') return '';
    $size = @mcrypt_get_block_size(MCRYPT_RIJNDAEL_128, MCRYPT_MODE_CBC);
    $padding = $size - strlen($plaintext) % $size;
    $plaintext .= str_repeat(chr($padding), $padding);
    $module = @mcrypt_module_open(MCRYPT_RIJNDAEL_128, '', MCRYPT_MODE_CBC, '');
    $key=substr($key, 0, @mcrypt_enc_get_key_size($module));
    @mcrypt_generic_init($module, $key, $iv);
    $encrypted = @mcrypt_generic($module, $plaintext);
    @mcrypt_generic_deinit($module);
    @mcrypt_module_close($module);
    return base64_encode($encrypted);
}

相关文章

总结

填坑心很累,自己挖的坑,含泪也要填完。更多aes加密解密的文字,请阅读苏南大叔的博客文章:

如果本文对您有帮助,或者节约了您的时间,欢迎打赏瓶饮料,建立下友谊关系。
本博客不欢迎:各种镜像采集行为。请尊重原创文章内容,转载请保留链接作者。
本站采用创作共用版权协议, 要求署名、非商业用途和相同方式共享。
转载本站内容必须也遵循“署名-非商业用途-相同方式共享”的创作共用协议。
未经许可,规模化镜像抄袭本站内容的行为,将会根据有关法律法规进行维权。
程序如此灵动~》下所有原创文章,如被用于商业用途,请您按规定支付稿费。

 【加群】加入QQ群【175454274】和大家一起讨论这个问题

 【源码】本文代码片段及相关软件,请点此获取

 【绝密】秘籍文章入口,仅传授于有缘之人   php    aes

本站的忠实读者小伙伴,正在阅读下面这些文章: