需要异或加密算法伪代码

发布于 2024-08-30 16:52:34 字数 100 浏览 11 评论 0原文

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

编辑:XOR 32 如果有帮助的话

编辑2:对于密码

I am trying to find the pseudocode for the XOR encryption algorithm. However I've had no luck so far. Anybody know where I can find it?

EDIT: XOR 32 if that helps

EDIT 2: For Passwords

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

荆棘i 2024-09-06 16:52:34

假设您指的是 Vernam 密码,它只是:

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

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

Assuming you mean a Vernam cipher, it's just:

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

Note that this is quite weak unless the key-stream is at least as long as the input, and is never re-used.

怀中猫帐中妖 2024-09-06 16:52:34

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

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

当密钥到达末尾时,它会回绕。

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

The most basic "xor encryption algorithm" is probably one that just XOR's the plaintext with the key, like so:

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

where the key just wraps around when it reaches the end.

Since XOR is its own inverse, XORing the ciphertext with the key again in the same fashion will reveal the plaintext.

烟花肆意 2024-09-06 16:52:34

你的意思是类似的东西吗?


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; }

Do you mean something like?


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; }

薄荷梦 2024-09-06 16:52:34

对于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);
}

For 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);
}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文