gpt4 book ai didi

c++ - 非常基本的文件加密形式?

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:08:06 24 4
gpt4 key购买 nike

加密纯文本文件的简单有效方法是什么?我不是在寻求安全,我只是希望普通用户无法篡改它。假设我有一个包含换行符分隔的电子邮件地址的文件。我希望它在打开时看起来像乱码,但很容易解密。

最佳答案

最简单实用的形式是 XOR cipher .基本上,您生成任意长度的随机数加密/解密 key 。要加密或解密您的数据,请使用 key 对数据进行 XOR。

它不是很安全;它主要用于进行轻微的混淆。

#include <vector>

typedef unsigned __int8 BYTE;

std::vector<BYTE> xor_encryptdecrypt(const std::vector<BYTE>& encryptionKey, const std::vector<BYTE>& input)
{
std::vector<BYTE> ret;
ret.reserve(input.size());

std::vector<BYTE>::const_iterator keyIterator = encryptionKey.begin();

for(std::vector<BYTE>::const_iterator inputIterator = input.begin(); inputIterator != input.end(); ++ inputIterator)
{
ret.push_back(*inputIterator ^ *keyIterator);

// advance the key iterator, wrapping to begin.
if(++ keyIterator == encryptionKey.end())
keyIterator = encryptionKey.begin();
}
return ret;
}


int main()
{
// variable-length key of randomness, used for both encryption and decryption.
std::vector<BYTE> key;
key.push_back(0x55);
key.push_back(0xae);
key.push_back(0x8c);
key.push_back(0x14);

std::vector<BYTE> input;
input.push_back(0x00);
input.push_back(0x01);
input.push_back(0x02);
input.push_back(0x03);
input.push_back(0x04);
input.push_back(0x05);

// encrypt
std::vector<BYTE> encrypted = xor_encryptdecrypt(key, input);

// decrypt
std::vector<BYTE> decrypted = xor_encryptdecrypt(key, encrypted);

return 0;
}

关于c++ - 非常基本的文件加密形式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8507795/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com