Нужен алгоритм шифрования XOR псевдокод - PullRequest
1 голос
/ 28 апреля 2010

Я пытаюсь найти псевдокод для алгоритма шифрования XOR. Однако мне пока не повезло. Кто-нибудь знает, где я могу его найти?

РЕДАКТИРОВАТЬ: XOR 32, если это помогает

РЕДАКТИРОВАТЬ 2: Для паролей

Ответы [ 4 ]

4 голосов
/ 28 апреля 2010

Предполагая, что вы имеете в виду шифр Вернама, это просто:

for i = 0 to length of input
    output[i] = input[i] xor key[i mod key_length]

Обратите внимание, что это довольно слабый , если поток ключей не длится, по крайней мере, до тех пор, пока ввод, и никогда не используется повторно.

2 голосов
/ 28 апреля 2010

Вы имеете в виду что-то вроде?

<code>
unsigned char key = 0x7F;  // or any 8-bit value.
//encrypt<br>
for(int i=0; i < strlen(input); i++)
{
    input[i] ^= key;
}<br>
//decrypt<br>
for(int i=0; i < strlen(input); i++)
{
    input[i] ^= key;
}
2 голосов
/ 28 апреля 2010

Для C:

void crypt(char key, char *msg, size_t l)
{
  int i;
  for(i=0; i<l; i++)
  msg[i]^=key;
}

void decrypt(char key, char *msg, size_t l)
{
  crypt(key, msg, l);
}
2 голосов
/ 28 апреля 2010

Самый простой «алгоритм шифрования xor» - это, вероятно, тот, который просто XOR представляет собой открытый текст с ключом, вот так:

for each bit of the plaintext:
    ciphertext = bit of plaintext XOR bit of key

где ключ просто оборачивается, когда достигает конца.

Поскольку XOR является собственным обратным алгоритмом, повторное выполнение XOR зашифрованного текста с ключом таким же образом откроет открытый текст.

...