我正在尝试反转以下代码以提供一个获取缓冲区并对其进行解密的函数。
void crypt_buffer(unsigned char *buffer, size_t size, char *key) {
size_t i;
int j;
j = 0;
for(i = 0; i < size; i++) {
if(j >= KEY_SIZE)
j = 0;
buffer[i] ^= key[j];
j++;
}
}
如果一个简单的 buffer[i] ^= (1/key[j]);
就足以解密加密的文件,我是在措辞。但是截断会有一些问题,不是吗?
最佳答案
这不是电力运营商。它是 XOR 运算符。对于 XOR 运算符,您注意到的是 x ^ k ^ k == x
。这意味着当使用相同的 key 和密文而不是明文调用时,您的加密函数已经是解密函数。
关于c - 用于解密的反向 ^ 运算符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30984468/