.txt文件,XOR加密,C ++中的Ascii控制字符问题

迈克西米连

C ++,我希望能够使用字符“ XOR”和键“ 1”来“加密”和解密.txt文件。

我能够成功加密和解密“ Hello World”,但较大的文本文件似乎具有一些映射到Ascii控制字符的XOR,这些XOR会导致解密无法完全解密整个文件。

Hello.txt包含“ Hello World”,output.txt为空。

我如何:

std::ifstream infile("Hello.txt");
std::ofstream outfile("output.txt");

std::string key = "1";

std::string contents((std::istreambuf_iterator<char>(infile)),
        std::istreambuf_iterator<char>()); //copies file data to contents

infile.close();
int k = 0;
for(std::size_t i = 0; i<contents.length();i++) //character by character
{
  contents[i] = contents[i] ^ key[k]; //"encrypt"
  k = (k+1) % key.length(); //iterate through key (for longer keys)
  outfile <<contents[i]; //write to output.txt
}
outfile.close();

使用相同的代码解密output.txt,但是需要更改infile和outfile的硬代码。例如。infile(“ output.txt”),outfile(“ text.txt”);

如果文件包含字符“ +”,则使用键“ 1”将“ +”加密为“”(→),并且解密将截断“ +”之后的所有内容(包括首尾)。

我是否正确地认为,.txt文件无法处理的对Ascii控制字符的某些值XOR(Windows 10)?

使用使用.txt文件保存密文的方法,是否可以正确地“加密”和解密?

如果可能,如何将Ascii控制字符存储到.txt文件?

我应该更改什么以更好地处理密文中的Ascii控制字符?

斯拉瓦

当您创建一个std::ofstreamstd::istream对象时,使用2个参数ctor,但是第二个参数具有默认值(std::ios::in且分别为std::ios::out),并且默认情况下会以“文本”模式打开文件,这在Windows上将启用控制字符处理并将其映射\r到“ \ r” \ n”,反之亦然。

因此,显式传递第二个参数:

 std::ofstream outfile("output.txt", std::ios::out | std::ios::binary);

这将以“二进制”模式打开它们,所有数据将不更改地通过。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在.txt文件中包含控制字符以供C#读取

来自分类Dev

无法清除^ [(B日志文件中的控制字符

来自分类Dev

在C中打印控制字符的图形表示

来自分类Dev

用ASCII控制字符填充字符串-目标C

来自分类Dev

C ++ XOR加密-解密问题

来自分类Dev

由于隐藏/控制字符,在C ++中读取文本文件的行失败

来自分类Dev

如何在 Access 中读取超过 255 个字符/行并包含控制字符的 TXT 文件?

来自分类Dev

从文件中读取并正确理解/解释控制字符(python)

来自分类Dev

从文本文件中删除二进制控制字符

来自分类Dev

创建一个平面文件,其中在Debian中解释了控制字符

来自分类Dev

读取/写入二进制文件中的控制字符

来自分类Dev

如何在外壳中以不同方式显示控制字符(^ C,^ D,^ [,...)

来自分类Dev

C编译器的区别?Char 中的 NUL 控制字符

来自分类Dev

删除命令中的多行输出ASCII控制字符

来自分类Dev

提取文件路径时无法转义控制字符“ \ r”

来自分类Dev

如何在读取文件时“绕过”控制字符?

来自分类Dev

有没有一种更快的方法来清除文件中的控制字符?

来自分类Dev

如何grep ASCII控制字符

来自分类Dev

无法使用 XOR C crypter 加密长字符串

来自分类Dev

如何将多行文件转换为以控制字符分隔的单行文件

来自分类Dev

JTextArea中控制字符的Java图像

来自分类Dev

在MySQL中查找控制字符

来自分类Dev

json解析中的控制字符错误

来自分类Dev

AWK输出中的控制字符

来自分类Dev

Python Shell中的控制字符

来自分类Dev

C中的ASCII字符

来自分类Dev

如何删除换行符以外的控制字符?(C#)

来自分类Dev

蛮力加密文件(XOR 加密)

来自分类Dev

AS3键盘控制字符-多次按键动画问题

Related 相关文章

热门标签

归档