Heim >Backend-Entwicklung >PHP-Tutorial >php5数字型字符串简易加解密的实现代码

php5数字型字符串简易加解密的实现代码

WBOY
WBOYOriginal
2016-07-25 09:00:15969Durchsuche
一段可以对数字型字符串进行简单的加密与解密的代码,有需要的朋友,可以参考下。

代码如下:

<?php 
/**
 * 数字型字符串简单加密码与解密
 * site bbs.it-home.org
*/
class Encryption { 
/** 
* 最终的密文代码,可设为任意不重复的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; 
} 
} 

public function encrypt($str) { 
return preg_replace( 
array_keys($this->replaceenc), 
$this->replaceenc, 
$this->mynotin(preg_replace("/(.)(.)/", "${2}$软件HR", $str)) 
); 
} 

public function decrypt($str) { 
return preg_replace("/(.)(.)/", "${2}$软件HR", 
$this->mynotout(preg_replace(array_keys($this->replacedec),$this->replacedec,$str)) 
); 
} 

private function mynotin($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; 
} 

private function mynotout($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; 
} 
} 
?>


Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn