<?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="222221"; / 转换后对照数组 / 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("/(.)(.)/", $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,$i7,7))+0)^$this->match; $i++; } return$str_out; } privatefunctionmynotout($str){ $str_out=""; $i=0; while(isset($str{8$i})){ $str_out.=substr((substr($str,$i8,8)+0)^$this->match,1); $i++; } return$str_out; } } ?> (编辑:李大同)
【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!
|