【问题标题】:RC4 Drop-N PHP ImplementationRC4 Drop-N PHP 实现
【发布时间】:2014-04-04 11:01:15
【问题描述】:
【问题讨论】:
标签:
php
encryption
rc4-cipher
【解决方案1】:
您所要做的就是在加密(或解密)之前将 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);