gpt4 book ai didi

c++ - 解密 .ini,并使用值?

转载 作者:行者123 更新时间:2023-11-28 06:13:18 26 4
gpt4 key购买 nike

我有一个异或函数:

string encryptDecrypt(string toEncrypt) {
char key[64] = { 'F', '2', 'D', 'C', '5', '4', '0', 'D', 'B', 'F', '3', 'E', '1', '2', '9', 'F', '4', 'E', 'A', 'A', 'F', '7', '6', '7', '5', '6', '9', 'E', '3', 'C', 'F', '9', '7', '5', '2', 'B', '4', 'B', '8', '2', '6', 'D', '9', '8', 'F', 'D', '8', '3', '8', '4', '6', '0', '8', '5', 'C', '0', '3', '7', 'D', '3', '5', 'F', '7', '5' };
string output = toEncrypt;
for (int i = 0; i < toEncrypt.size(); i++)
output[i] = toEncrypt[i] ^ key[i % (sizeof(key) / sizeof(char))];
return output;

我加密了我的 .ini :

[test]
baubau = 1
haha = 2
sometext = blabla

我如何尝试解密和使用值:

std::string Filename = "abc.ini";
std::ifstream input(Filename, std::ios::binary | ios::in); // Open the file
std::string line; // Temp variable
std::vector<std::string> lines; // Vector for holding all lines in the file
while (std::getline(input, line)) // Read lines as long as the file is
{
lines.push_back(encryptDecrypt(line));
}
// Here i should call the ini reader? but how?
CIniReader iniReader("abc.ini");
string my = encryptDecrypt(iniReader.ReadString("test", "baubau", ""));
for (auto s : lines)
{
cout << my;
cout << endl;
}

我的错误在哪里?一些帮助将不胜感激,非常感谢!

最佳答案

你可以做的是:

  1. 逐行读取文件,并分解键和值,即在您看到“key=value”的地方将其分解为键和值。

  2. 加密值。

  3. 对值进行 Base64 编码,以防它不再是文件编码中的有效文本。

  4. 用“key=base64-encoded-value”替换该行。

  5. 稍后,当您读取 key 的编码值(它只是一个简单的 Base64 编码字节字符串)时,对字符串进行 Base64 解码,然后解密值。

例如,这一行:

包包 = 1

将值“1”作为字符串,并使用您的函数对其进行加密。本例中的结果是一个可打印的字符串“w”。但是,我会将其视为任意字节。

Base64 编码“加密”值。例如,UTF-8(或 ASCII)中“w”的 Base64 编码是“dw==”。

将这一行替换为:

baubau = dw==

或者,如果你愿意:

baubau = "dw=="

稍后,当您读取 baubau 的值时,您只需对 'dw==' 进行 Base64 解码,得到 'w',然后对 'w' 进行解密,得到 '1'。

关于c++ - 解密 .ini,并使用值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30805126/

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