Rumah > pembangunan bahagian belakang > tutorial php > php5数字型字符串简易加解密的实现代码

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

WBOY
Lepaskan: 2016-07-25 09:00:15
asal
944 orang telah melayarinya
一段可以对数字型字符串进行简单的加密与解密的代码,有需要的朋友,可以参考下。

代码如下:

<?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; 
} 
} 
?>
Salin selepas log masuk


sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan