PHP实现加强版加密解密类实例
本文实例讲述了PHP实现加强版加密解密类。分享给大家供大家参考。具体如下:
<?php
classEnder{
private$enkey;//加密解密用的密钥
private$rep_char='#';
//替换加密后的base64字符串中的=,因为=在有些场合是禁止使用的,
//这里可以用一个允许的字符作为替换。
//构造参数是密钥
publicfunction__construct($key=''){
if(!$key){
$this->enkey=$key;
}
}
//设置密钥http://blog.ddian.cn
publicfunctionset_key($key){
$this->enkey=$key;
}
privatefunctionkeyED($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;
}
//加密字符串
publicfunctionencrypt($txt,$key='')
{
if(!$key){
$key=$this->enkey;
}
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++;
}
$r=base64_encode($this->keyED($tmp,$key));
$r=str_replace('=',$this->rep_char,$r);
return$r;
}
//解密字符串
publicfunctiondecrypt($txt,$key='')
{
$txt=str_replace($this->rep_char,'=',$txt);
$txt=base64_decode($txt);
if(!$key){
$key=$this->enkey;
}
$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;
}
}
希望本文所述对大家的php程序设计有所帮助。
热门推荐
10 八一幼儿祝福语大全简短
11 公司乔迁食堂祝福语简短
12 婚礼结束聚餐祝福语简短
13 儿媳买车妈妈祝福语简短
14 毕业送礼老师祝福语简短
15 同事辞职正常祝福语简短
16 恭贺新婚文案祝福语简短
17 金店立秋祝福语简短英文
18 婆婆高寿祝福语大全简短