温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

如何使用PHP实现带公钥加密类

发布时间:2021-09-29 14:41:56 来源:亿速云 阅读:175 作者:小新 栏目:开发技术

这篇文章主要介绍了如何使用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 function 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->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 setKey($key){     if(empty($key)){       return null;     }     $this->key=$key;   }     public function getPK(){     return $this->key;   }   }

使用方法:

<?php // 先包含加密类 require_once('jiami.class.php');   // 要加密的字符串 $string = 'https://www.jb51.net';   // 实例化加密类 $jiami= new Jiami();   // 设置公钥 $jiami->setKey('qttc');   // 加密字符串 $enc = $jiami->encrypt($string,$jiami->getPK());   // 解密字符串 $dec = $jiami->decrypt($enc,$jiami->getPK());   echo '<meta charset="utf-8" />'; echo '加密前 : '.$string .'<br/>'; echo '加密后 : '.$enc .'<br/>'; echo '解密后 : '.$dec; ?>

页面执行结果

结果1:

如何使用PHP实现带公钥加密类

结果2:

如何使用PHP实现带公钥加密类

由以上结果可以看到,每次加密产生的加密字符串都不一样,这是随机的。
解密的时候,需要使用加密时的公钥,否则无法解密。如你这边加密公钥使用‘qttc',解密的时候,也需要使用这个'qttc'作为公钥去解密,否则无法解密。

感谢你能够认真阅读完这篇文章,希望小编分享的“如何使用PHP实现带公钥加密类”这篇文章对大家有帮助,同时也希望大家多多支持亿速云,关注亿速云行业资讯频道,更多相关知识等着你来学习!

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

php
AI