Bookmark and Share

Lee's 程序人生

HTML CSS Javascript XML AJAX ATLAS C# C++ 数据结构 软件工程 设计模式 asp.net Java 数字图象处理 Sql 数据库
  博客园  :: 首页  :: 新随笔  :: 联系 :: 管理

一个RC4加密算法[来自蜗牛]

Posted on 2009-10-12 19:20  analyzer  阅读(474)  评论(0编辑  收藏  举报
PHP代码
  1. function rc4 ($pwd$data)//$pwd密钥 $data需加密字符串      
  2.         {      
  3.                 $key[] ="";      
  4.                 $box[] ="";      
  5.      
  6.                 $pwd_length = strlen($pwd);      
  7.                 $data_length = strlen($data);      
  8.      
  9.                 for ($i = 0; $i < 256; $i++)      
  10.                 {      
  11.                         $key[$i] = ord($pwd[$i % $pwd_length]);      
  12.                         $box[$i] = $i;      
  13.                 }      
  14.      
  15.                 for ($j = $i = 0; $i < 256; $i++)      
  16.                 {      
  17.                         $j = ($j + $box[$i] + $key[$i]) % 256;      
  18.                         $tmp = $box[$i];      
  19.                         $box[$i] = $box[$j];      
  20.                         $box[$j] = $tmp;      
  21.                 }      
  22.      
  23.                 for ($a = $j = $i = 0; $i < $data_length$i++)      
  24.                 {      
  25.                         $a = ($a + 1) % 256;      
  26.                         $j = ($j + $box[$a]) % 256;      
  27.      
  28.                         $tmp = $box[$a];      
  29.                         $box[$a] = $box[$j];      
  30.                         $box[$j] = $tmp;      
  31.      
  32.                         $k = $box[(($box[$a] + $box[$j]) % 256)];      
  33.                         $cipher .= chr(ord($data[$i]) ^ $k);      
  34.      
  35.                 }      
  36.      
  37.                 return $cipher;      
  38.      
  39.         }      

 

$key = 'mykey';
$string = 'iloveyou';

echo $after = rc4($key, $string);// 加密
echo $befor = rc4($key, $after);解密

我要啦免费统计