欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  php教程

php自制加密解密算法|php与运算加密解密|php与运算

程序员文章站 2022-04-11 08:22:06
...

2. [代码][PHP]代码

class CCEncode{
	
	public static $instance = NULL;
	
	public static function getInstance(){
		if(is_null(self::$instance)){
			self::$instance = new self;	
		}
		return self::$instance;
	}
	
	protected function getByte($data){
		$length = strlen($data);
		for($i = 0; $i < $length; $i ++){
			$tmpList[] = ord($data{$i});	
		}
		return $tmpList;
	}
	
	protected function getChar($data, $string = ''){
		$length = count($data);
		foreach($data as $value){
			$string .= chr($value);	
		}
		return $string;
	}
	
	public function encrypt($data, $key){
		$dataArr = $this->getByte($data);
		$keyArr = $this->getByte($key);
		$lengthA = count($dataArr);
		$lengthB = count($keyArr);
		for($i = 0; $i < $lengthA; $i ++){
			$tmpList[] = (0xFF & $dataArr[$i]) + (0xFF & $keyArr[$i % $lengthB]);
		}
		return implode('@', $tmpList);
	}
	
	public function decrypt($data, $key){
		$dataArr = explode('@', $data);
		$keyArr = $this->getByte($key);
		$lengthA = count($dataArr);
		$lengthB = count($keyArr);
		for($i = 0; $i < $lengthA; $i ++){
			$tmpList[] = $dataArr[$i] - (0xFF & $keyArr[$i % $lengthB]);
		}
		return $this->getChar($tmpList);
	}
		
}