web交互安全一直是个各大网站的首要解决方案,本文介绍的php加密类非常实用哦,带有公钥,这是最大的亮点,没有公钥是不能解密的,加密度非常高。
近体类代码:
<?php/** * php加密类 * 琼台博客 */class jiami{ // 公钥 protected $key = 'lee'; private function keyed($txt,$encrypt_key){ $encrypt_key = md5($encrypt_key); $ctr=0; $tmp = ''; for ($i=0;$i<strlen($txt);$i++){ if ($ctr==strlen($encrypt_key)){ $ctr=0; } $tmp.= substr($txt,$i,1) ^ substr($encrypt_key,$ctr,1); $ctr++; } return $tmp; } public f西游记主要内容unction encrypt($txt,$key=''){ if(empty($key)){ $key=$this->key; } srand((double)microtime()*1000000); $encrypt_key = md5(rand(0,32000)); $ctr=0; $tmp = ''; for ($i=0;$i<strlen($txt);$i++) { if ($ctr==strlen($encrypt_key)){ $ctr=0; } $tmp.= substr($encrypt_key,$ctr,1).(substr($txt,$i,1) ^ substr($encrypt_key,$ctr,1)); $ctr++; } return $this->keyed($tmp,$key); } public function decrypt($txt,$key=''){ if(empty($key)){ $key=$this-&公司房产税如何计算gt;key; } $txt = $this->keyed($txt,$key); $tmp = ''; for ($i=0;$i<strlen($txt);$i++){ $md5 = substr($txt,$i,1); $i++; $tmp.= (substr($txt,$i,1) ^ $md5); } 国家公务员考试科目 return $tmp; } public function tkey($key){ if(empty($key)){ return null; } $this->key=$key; } public function getpk(){ return $this->key; } }
使用方法:
<?php// 先包含加密类require_once('jiami.class.php'); // 要加密的字符串$string = '//www.jb51.net'; // 实例化加密类$jiami= new jiami(); // 设置公钥$jiami->tkey('qttc'); // 加密字符串$enc = $jiami->encrypt($string,$jiami->getpk()); // 解密字符串$dec = $jiami->decrypt($enc,$jiami->getpk()); echo '<meta chart="utf-8" />';echo '加密前 : '.$string .'<br/>';echo '加密后 : '.$enc .'<br/>';echo '解密后 : '.$dec;?>
页面执行结果
结果1:
结果2:
由以上结果可以看到,每次加密产生的加密字符串都不一样,这是随机的。
解密的时候,需要使用加密时的公钥,否则无法解密。如你这边加历史成语故事密公钥使用‘qttc’,解密的时候,也需要使用这个’qttc’作为公钥去解密,否则无法解密。
本文发布于:2023-04-06 21:53:43,感谢您对本站的认可!
本文链接:https://www.wtabcd.cn/fanwen/zuowen/d002aff17da23227a822a1364a8d61e5.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文word下载地址:实用的PHP带公钥加密类分享(每次加密结果都不一样哦).doc
本文 PDF 下载地址:实用的PHP带公钥加密类分享(每次加密结果都不一样哦).pdf
留言与评论(共有 0 条评论) |