Реализация 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);
Другие вопросы по тегам