首页 > 作文

PHP实现的AES 128位加密算法示例

更新时间:2023-04-08 07:45:16 阅读: 评论:0

本文实例讲述了php实现的aes 128位加密算法。分享给大家供大家参考,具体如下:

/*加密算法一般分为两种:对称加密算法和非对称加密算法。对称加密对称加密算法是消息发送者和接收者使用同一个密匙书魂,发送者使用密匙加密了文件,接收者使用同样的密匙解密,获取信息。常见的对称加密算法有:des/aes/智力题大全3des.对称加密算法的特点有:速度快,加密前后文件大小作文技巧变化不大,但是密匙的保管是个大问题,因为消息发送方和接收方任意一方的密匙丢失,都会导致信息传输变得不安全。非对称加密与对称加密相对的是非对称加密,非对称加密的核心思想是使用一对相对的密匙分为公匙和私匙,私匙自己安全保存,而将公匙公开。公钥与私钥是一对,如果用公钥对数据进行加密,只有用对应的私钥才能解密;如果用私钥对数据进行加密,那么只有用对应的公钥才能解密发送数据前只需要使用接收方的公匙加密就行了。常见的非对称加密算法有rsa/dsa:非对称加密虽然没有密匙保存问题,但其计算量大,加密速度很慢,有时候我们还需要对大块数据进行分块加密。数字签名为了保证数据的完整性,还需要通过散列函数计算得到一个散列值,这个散列值被称为数字签名。其特点有:无论原始数据是多大,结果的长度相同的;输入一样,输出也相同;对输入的微小改变,会使结果产生很大的变化;加密过程不可逆,无法通过散列值得到原来的数据;常见的数字签名算法有md5,hash1等算法。php的openssl扩展openssl扩展使用openssl加密扩展包,封装了多个用于加密解密相关的php函数,极大地方便了对数据的加密解密。 常用的函数有:对称加密相关:string openssl_encrypt ( string $data , string $method , string $password)其中$data为其要加密的数据,$method是加密要使用的方法,$password是要使用的密匙,函数返回加密后的数据;其中$method列表可以使用openssl_get_cipher_methods()来获取其解密函数为 string openssl_encrypt ( string $data , string $method , string $password)非对称加密相关:它们都只需要传入证书文件(一般是.pem文件);使用公匙加密数据,其中$data是要加密的数梦到蛇是什么征兆 女性据;$crypted是一个引用变量系统还原步骤,加密后的数据会被放入这个变量中;$key是要传入的公匙数据;由于被加密数据分组时,有可能不会正好为加密位数bit的整数倍,所以需要$padding(填充补齐),$padding的可选项有 openssl_pkcs1_padding, openssl_no_padding,分别为pkcs1填充,或不使用填充;签名函数:$data为要签名的数据;$signature为签名结果的引用变量;$priv_key_id为签名所使用的私匙;$signature_alg为签名要使用的算法,其算法列表可以使用openssl_get_md_methods()得到验签函数:与签名函数相对,只不过它要传入与私匙对应的公匙;其结果为签名验证结果,1为成功,0为失败,-1则表示错误; * *//* * 基于百度云api的例子 * 密码一律采用aes 128位加密算法进行加密,用sk的前16位作为密钥, * 加密后生成的二进制字节流需要转成十六进制,并以字符串的形式传到服务端 * */function aes128withfirst16char($adminpass, $cretaccesskey){  $adminpass = pkcs5pad($adminpass);  //把key值截取成16位的  $cretaccesskey = substr($cretaccesskey, 0, 16);  //进行aes加密  $crypted = openssl_encrypt($adminpass, 'aes-128-ecb', $cretaccesskey, openssl_raw_data);  //把字符串转换为16进制  return bin2hex(substr($crypted, 0, 16));}//把密码填充成16位function pkcs5pad($adminpass){  $pad = 16 - (strlen($adminpass) % 16);  return $adminpass . str_repeat(chr($pad), $pad);}echo aes128withfirst16char('加密的密码','key值');

ps:关于加密解密感兴趣的朋友还可以参考本站在线工具:

文字在线加密解密工具(包含aes、des、rc4等):

md5在线加密工具:
http://tools.jb51.net/password/createmd5password

在线散列/哈希算法加密工具:

在线md5/hash/sha-1/sha-2/sha-256/sha-512/sha-3/ripemd-160加密工具:

在线sha1/sha224/sha256/sha384/sha512加密工具:

本文发布于:2023-04-08 07:45:14,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/fanwen/zuowen/42bebd250131905e44d72d868dcd14b3.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

本文word下载地址:PHP实现的AES 128位加密算法示例.doc

本文 PDF 下载地址:PHP实现的AES 128位加密算法示例.pdf

标签:在线   数据   加密算法   对称
相关文章
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图