1

我正在尝试查找 XOR 加密算法的伪代码。但是到目前为止我还没有运气。有人知道我在哪里可以找到它吗?

编辑: XOR 32 如果有帮助

编辑 2:对于密码

4

4 回答 4

4

假设你的意思是 Vernam 密码,它只是:

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

请注意,除非密钥流至少与输入一样长,并且永远不会重复使用,否则这是非常弱的。

于 2010-04-27T23:41:00.933 回答
2

最基本的“异或加密算法”可能只是将明文与密钥进行异或运算,如下所示:

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

当钥匙到达终点时,钥匙会环绕。

由于 XOR 是它自己的逆,以相同的方式再次将密文与密钥进行异或将揭示明文。

于 2010-04-27T23:37:49.257 回答
2

你的意思是类似的吗?


unsigned char key = 0x7F;  // or any 8-bit value.
//encrypt
for(int i=0; i < strlen(input); i++) { input[i] ^= key; }
//decrypt
for(int i=0; i < strlen(input); i++) { input[i] ^= key; }

于 2010-04-27T23:38:01.217 回答
2

对于 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);
}
于 2010-04-27T23:39:17.707 回答