c - 用于解密的反向 ^ 运算符

标签 c algorithm security math encryption

我正在尝试反转以下代码以提供一个获取缓冲区并对其进行解密的函数。

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/

相关文章:

c - 使用用户输入的十六进制值读取 c 中的内存地址

c - 找到所有大小 s(元素数量)的不同矩阵(N)的数量?

java - 计算复杂度为 O(1) 的 N 以下数字的倍数之和?

asp.net - Firefox 和 IE 上的网站 SSL 内容问题

postgresql - 为什么 PostgreSQL 默认将用户密码存储在 MD5 哈希中不是安全漏洞?

c - 程序崩溃

接受不同多项式的 crc 16 实现

arrays - 对两个索引同步(配对)数组进行排序时,如何维护索引?

algorithm - 存储概率分布而不保存单个值

c# - Safari - 显示过期的 .NET 页面