php 加密解密类(含公钥)的实现代码_PHP教程

php中文网
发布: 2016-07-21 14:58:17
原创
849人浏览过

php
class crypt{
// 本文来源:龙哥博客
protected $key = “”; //公钥

private function keyed($txt,$encrypt_key)
{
$encrypt_key = md5($encrypt_key);
$ctr=0;
$tmp = “”;
for ($i=0;$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{
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{
$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 getkey()
{
return $this->key;
}
// downloads by http://www.bkjia.com
}
$string = “http://www.52blogger.com”;
$crypt= new crypt();
$crypt->setkey(“http://www.52blogger.com”);
$enc_text = $crypt->encrypt($string,$crypt->getkey());
$dec_text = $crypt->decrypt($enc_text,$crypt->getkey());
echo “加密前 : $string
\n”;
echo “加密后 : $enc_text
\n”;
echo “解密后 : $dec_text \n”;
?>

执行结果:

加密前 : http://www.52blogger.com
加密后 : hszq’z* kp~y(wpvs=6q3gzbr5qkhtz(f=zm
解密后 : http://www.52blogger.com

注意的是:每次加密后的字符串都不一样,另外还需要公钥才能解密,如果公钥不对,解密的结果与明文是不一致的.可惜的是,此方法貌似不支持中文~

www.bkjia.comtruehttp://www.bkjia.com/PHPjc/363850.htmlTechArticle?php class Crypt{ // 本文来源:龙哥博客 protected $key = ; //公钥 private function keyED($txt,$encrypt_key) { $encrypt_key = md5($encrypt_key); $ctr=0; $tmp = ; for ($i=...
相关标签:
php
PHP速学教程(入门到精通)
PHP速学教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号