このアルゴリズムの復号方法は、一度再暗号化すると復元できます。 。
- /*
- * rc4 暗号化アルゴリズム
- * $pwd キー
- * 暗号化される $data データ
- */
- function rc4 ($pwd, $data)//$pwd key $data は暗号化された文字列である必要があります
- {
- $key[] ="";
- $box[] ="";
-
- $pwd_length = strlen($pwd);
- $data_length = strlen($data);
-
- for ($i = 0; $ i {
- $key[$i] = ord($pwd[$i % $pwd_length]);
- $box[$i] = $i;
- }
-
- for ($ j = $i = 0; $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;
- }
-
コードをコピー
|