php5数字型字符串加解密代码
php5数字型字符串加解密代码
发布时间:2016-12-29 来源:查字典编辑
摘要:

<?php

/*----------------------------------------------------------------------------

*ScriptName:encrypt.php

*CreationDate:2008-4-710:36

*LastModified:2008-4-1216:00

*Author:meyu

*Copyright(c)2007

*Purpose:数字字符串简易加解密

*----------------------------------------------------------------------------*/

classEncryption{

/**

*最终的密文代码,可设为任意不重复的10位英文字符a-zA-Z

*/

private$replacement='urskydMeIV';

/**

*增加的密文第一位,可设为1位除0以外的整数,即1-9

*/

private$prefix="8";

/**

*公钥,长度小于8位的正整数

*/

private$match="111111";

/**

*转换后对照数组

*/

private$replaceenc;

private$replacedec;

function__construct(){

for($i=0;$i<10;$i++){

$this->replaceenc['/'.$i.'/']=$this->replacement{$i};

$this->replacedec['/'.$this->replacement{$i}.'/']=$i;

}

}

publicfunctionencrypt($str){

returnpreg_replace(

array_keys($this->replaceenc),

$this->replaceenc,

$this->mynotin(preg_replace("/(.)(.)/","${2}${1}",$str))

);

}

publicfunctiondecrypt($str){

returnpreg_replace("/(.)(.)/","${2}${1}",

$this->mynotout(preg_replace(array_keys($this->replacedec),$this->replacedec,$str))

);

}

privatefunctionmynotin($str){

$str_out="";

$i=0;

while(isset($str{7*$i})){

$str_out.=(($this->prefix.substr($str,$i*7,7))+0)^$this->match;

$i++;

}

return$str_out;

}

privatefunctionmynotout($str){

$str_out="";

$i=0;

while(isset($str{8*$i})){

$str_out.=substr((substr($str,$i*8,8)+0)^$this->match,1);

$i++;

}

return$str_out;

}

}

?>

推荐文章
猜你喜欢
附近的人在看
推荐阅读
拓展阅读
相关阅读
网友关注
最新php教程学习
热门php教程学习
编程开发子分类