浏览 3093 次
锁定老帖子 主题:php 加密解密类(含公钥)
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2010-06-08
最后修改:2010-06-08
class Crypt{ protected $key = “”; //公钥 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 getKey() { return $this->key; } } $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 <br/>\n”; echo “加密后 : $enc_text <br/>\n”; echo “解密后 : $dec_text \n”; ?> 执行结果: 加密前 : http://www.52blogger.com 加密后 : hSzQ’Z* kP~y(WpVs=6Q3gZbR5QkhtZ(f=Zm 解密后 : http://www.52blogger.com 详情请看:http://www.52blogger.com/archives/387 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2011-06-03
连个格式也没有噻~~
|
|
返回顶楼 | |