Реализация RC4 Drop-N PHP
У меня уже есть реализация шифра RC4 в PHP (он выглядит почти идентично этому http://pear.php.net/package/Crypt_RC42).
Однако я хотел бы представить подход "Drop-N", как упомянуто в ( http://en.wikipedia.org/wiki/RC4).
Есть ли простой способ реализовать это на основе класса, который я использую выше?
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);