C语言XOR加密算法

创建日期: 2024-04-19 09:39 | 作者: 风波 | 浏览次数: 14 | 分类: C++

来源:百度代码生成

#include <stdint.h>
#include <string.h>

void xor_encrypt(uint8_t *data, size_t length, uint8_t key) {
    for (size_t i = 0; i < length; ++i) {
        data[i] ^= key;
    }
}

void xor_decrypt(uint8_t *data, size_t length, uint8_t key) {
    xor_encrypt(data, length, key);
}

int main() {
    uint8_t data[] = "Hello, World!";
    size_t length = strlen((const char *)data);
    uint8_t key = 0xFF; // 密钥

    // 加密
    xor_encrypt(data, length, key);

    // 解密
    xor_decrypt(data, length, key);

    return 0;
}

改进一下,可以把 key 设置为一个数组,每次使用 key 里面的不同 key 做 XOR

void xor_encrypt(uint8_t *data, size_t length, uint8_t key[], int keylen) {
    for (size_t i = 0; i < length; ++i) {
        data[i] ^= key[i % keylen];
    }
}

void xor_decrypt(uint8_t *data, size_t length, uint8_t key[], int keylen) {
    xor_encrypt(data, length, key, keylen);
}
14 浏览
9 爬虫
0 评论