龙盟编程博客 | 无障碍搜索 | 云盘搜索神器
快速搜索
主页 > web编程 > php编程 >

php实现rc4加密算法

时间:2014-07-22 14:52来源: 作者: 点击:
分享到:
p此算法的解密方法是重新加密一次,便可还原。。/p

此算法的解密方法是重新加密一次,便可还原。。


	/*
	 * rc4加密算法
	 * $pwd 密钥
	 * $data 要加密的数据
	 */
	function rc4 ($pwd, $data)//$pwd密钥 $data需加密字符串
    {
		$key[] ="";
		$box[] ="";

		$pwd_length = strlen($pwd);
		$data_length = strlen($data);

		for ($i = 0; $i < 256; $i++)
		{
			$key[$i] = ord($pwd[$i % $pwd_length]);
			$box[$i] = $i;
		}

		for ($j = $i = 0; $i < 256; $i++)
		{
			$j = ($j + $box[$i] + $key[$i]) % 256;
			$tmp = $box[$i];
			$box[$i] = $box[$j];
			$box[$j] = $tmp;
		}

		for ($a = $j = $i = 0; $i < $data_length; $i++)
		{
			$a = ($a + 1) % 256;
			$j = ($j + $box[$a]) % 256;

			$tmp = $box[$a];
			$box[$a] = $box[$j];
			$box[$j] = $tmp;

			$k = $box[(($box[$a] + $box[$j]) % 256)];
			$cipher .= chr(ord($data[$i]) ^ $k);
		}
		
		return $cipher;
    }
精彩图集

赞助商链接