1.原始鑰匙 key 2.md5(md5+常量) 加密原始key => mkey 3.mkey 作為AC4的密匙 ac_mkey 4.ac_mkey 對加密數據 進行 AC4 加密 得到AC4密碼 5.AC4密碼 在進行一次 AC4加密可還原 加密數據 簡單來說,一句話,用md5 做AC4的密匙 以下是代碼 <?php /* * 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; } $key = '5201314'; //原始KEY $pwd = md5(md5($key).'我是常量'); //md5+常量 $data = '我愛北京天安門'; //要加密的數據 $cipher = rc4($pwd, $data); //AC4 加密算法 $c = rc4($pwd, $cipher); //AC4 加密算法還原 (還原只需要重新加密一次) echo '<pre>'; var_dump($key); var_dump($pwd); var_dump($data); var_dump($cipher); var_dump($c); ?>
php–rc4加密解密
发布于 2016年5月11日
归档于 PHP