![](/img/trans.png)
[英]Translate Windows RC4 CryptDeriveKey to PHP for openssl
[英]RC4 Drop-N PHP Implementation
我已經在PHP中實現了RC4密碼(與該http://pear.php.net/package/Crypt_RC42幾乎完全相同)。
但是,我想介紹一下( http://en.wikipedia.org/wiki/RC4#Fluhrer.2C_Mantin_and_Shamir_attack )中提到的“ Drop-N”方法。
有沒有一種簡單的方法可以根據我上面使用的類來實現呢?
您要做的就是在加密(或解密)之前將n字節數據添加到純文本(或密文)的開頭。
只要有n個字節,這些字節包含什么都沒有關系。 然后丟棄加密(解密)數據的前n個字節。 使用不同的填充字節進行加密和解密不會有任何區別。
換句話說:
$define('DROP_N_PADDING_LENGTH',512); // (or whatever)
$message = "Hello, world!";
// encrypt:
$ciphertext = $rc4->encrypt(str_repeat(" ",DROP_N_PADDING_LENGTH) . $message);
$ciphertext = substr($ciphertext,DROP_N_PADDING_LENGTH);
// decrypt:
$plaintext = $rc4->decrypt(str_repeat(" ",DROP_N_PADDING_LENGTH) . $ciphertext);
$plaintext = substr($plaintext,DROP_N_PADDING_LENGTH);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.