简单的PHP加密/解密(Mcrypt,AES)
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了简单的PHP加密/解密(Mcrypt,AES),小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1886字,纯文字阅读大概需要3分钟。
内容图文
![简单的PHP加密/解密(Mcrypt,AES)](/upload/InfoBanner/zyjiaocheng/759/a62b724ff4b2436195db0d1c821aa2b4.jpg)
我正在寻找使用Mcrypt的简单但加密强大的AES实现AES.
希望将其归结为一对简单的函数,$garble = encrypt($key,$payload)和$payload = decrypt($key,$garble).
解决方法:
我最近正在学习这个主题,并将此答案作为社区维基发布,以分享我的知识,有待纠正.
我的理解是,使用Mcrypt可以使用以下常量作为选项来实现AES:
MCRYPT_RIJNDAEL_128 // as cipher
MCRYPT_MODE_CBC // as mode
MCRYPT_MODE_DEV_URANDOM // as random source (for IV)
在加密期间,应使用随机化的非秘密初始化向量(IV)来随机化每个加密(因此相同的加密永远不会产生相同的加密).该IV应附加到加密结果,以便在解密期间稍后使用.
结果应为Base 64编码,以实现简单的兼容性.
执行:
<?php
define('IV_SIZE', mcrypt_get_iv_size(MCRYPT_RIJNDAEL_128, MCRYPT_MODE_CBC));
function encrypt ($key, $payload) {
$iv = mcrypt_create_iv(IV_SIZE, MCRYPT_DEV_URANDOM);
$crypt = mcrypt_encrypt(MCRYPT_RIJNDAEL_128, $key, $payload, MCRYPT_MODE_CBC, $iv);
$combo = $iv . $crypt;
$garble = base64_encode($iv . $crypt);
return $garble;
}
function decrypt ($key, $garble) {
$combo = base64_decode($garble);
$iv = substr($combo, 0, IV_SIZE);
$crypt = substr($combo, IV_SIZE, strlen($combo));
$payload = mcrypt_decrypt(MCRYPT_RIJNDAEL_128, $key, $crypt, MCRYPT_MODE_CBC, $iv);
return $payload;
}
//:::::::::::: TESTING ::::::::::::
$key = "secret-key-is-secret";
$payload = "In 1435 the abbey came into conflict with the townspeople of Bamberg and was plundered.";
// ENCRYPTION
$garble = encrypt($key, $payload);
// DECRYPTION
$end_result = decrypt($key, $garble);
// Outputting Results
echo "Encrypted: ", var_dump($garble), "<br/><br/>";
echo "Decrypted: ", var_dump($end_result);
?>
输出如下:
Encrypted: string(152) "4dZcfPgS9DRldq+2pzvi7oAth/baXQOrMmt42la06ZkcmdQATG8mfO+t233MyUXSPYyjnmFMLwwHxpYiDmxvkKvRjLc0qPFfuIG1VrVon5EFxXEFqY6dZnApeE2sRKd2iv8m+DiiiykXBZ+LtRMUCw=="
Decrypted: string(96) "In 1435 the abbey came into conflict with the townspeople of Bamberg and was plundered."
内容总结
以上是互联网集市为您收集整理的简单的PHP加密/解密(Mcrypt,AES)全部内容,希望文章能够帮你解决简单的PHP加密/解密(Mcrypt,AES)所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。