加密

该加密是参考CI
<?php

	header('Content-Type:text/html;charset=utf-8');
	date_default_timezone_set('PRC');

	$string = 'This is a encode string';
	$key = 'this is a key!!';

	function encodestr($str = '', $key = '') {
		$key = md5($key);
		$init_size = mcrypt_get_iv_size(MCRYPT_RIJNDAEL_256, MCRYPT_MODE_CBC);
		$init_vect = mcrypt_create_iv($init_size, MCRYPT_RAND);

		$encrypt = mcrypt_encrypt(MCRYPT_RIJNDAEL_256, $key, $str, MCRYPT_MODE_CBC, $init_vect);
		$data = $init_vect.$encrypt;
		$keyHash = sha1($key);
		$keylen = strlen($keyHash);
		
		$encodestr = '';
		for($i=0,$j=0,$len=strlen($data); $i<$len; ++$i,++$j) {
			if ($j >= $keylen)
			{
				$j = 0;
			}	
			$encodestr .= chr(ord($data[$i]) + ord($keyHash[$j]) % 256);
		}
		return base64_encode($encodestr);
	}

	function decodestr($encodestr = '', $key = '') {
		$key = md5($key);

		$keyHash = sha1($key);
		$keylen = strlen($keyHash);		

		$data = base64_decode($encodestr);
		$decodestr = '';

		for($i=0,$j=0,$len=strlen($data); $i < $len; ++$i,++$j) 
		{	
			if($j >= $keylen) 
			{
				$j = 0;
			}

			$temp = ord($data[$i]) - ord($keyHash[$j]);

			if($temp < 0)
			{
				$temp = $temp + 256; 
			}

			$decodestr .= chr($temp);
		}

		$init_size = mcrypt_get_iv_size(MCRYPT_RIJNDAEL_256, MCRYPT_MODE_CBC);

		if ($init_size > strlen($decodestr))
		{
			return FALSE;
		}

		$init_vect = substr($decodestr, 0, $init_size);
		$decodestr = substr($decodestr, $init_size);

		return rtrim(mcrypt_decrypt(MCRYPT_RIJNDAEL_256, $key, $decodestr, MCRYPT_MODE_CBC, $init_vect), "\0");

	}
	
	$re = encodestr($string, $key);
	echo decodestr($re,$key);


?>

框架写的。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值