Implementation code for simple encryption and decryption of numeric strings in php5

WBOY
Release: 2016-07-25 09:00:15
Original
867 people have browsed it
一段可以对数字型字符串进行简单的加密与解密的代码,有需要的朋友,可以参考下。

代码如下:

<?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; 
} 
} 
?>
Copy after login


source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
About us Disclaimer Sitemap
php.cn:Public welfare online PHP training,Help PHP learners grow quickly!