【问题标题】:Encryption & Decryption in C++ Using IO File使用 IO 文件在 C++ 中加密和解密
【发布时间】:2013-12-25 12:13:06
【问题描述】:

我有一个程序可以获取一个文本文件并对其进行加密,这个程序可以正常工作,但要再次解密加密文件,读取它的内容时出现问题,我真的不知道为什么?

输出文件包含:

u،~«چںaJj²طوڑظپهزz^®h6´؛تٌSaطyْ²ٍbزyàê–è@؛
wF¹LVچ‍ï§ک²ٍهئ‹غ·z)²7œf&€¬|{ ]O‘•RاMwvS,lج´رë€ت^M»بف_¢!d‏5و½CگّغS¨”dACc+Qoô
…إ·ؤâگض’‘إ2ك6@®eث2¼³َِ¢?]رْ³!§‰ Vම鷢‏7¢اV\»K18ض•5T¦k.و_ك~¯%ˆü}7ظ؟”b’~Q3Oهذ.™'!ذ7 ن‘ْژ‌,دحىZcFŒà{ْ\^¾عبzèںىھKَ9فPêفƒ®ظüکKپµŒ­اج¹ٌ:iده±=´yٌl.
2Aا#RطNc4   ‍ھ؟îِxDft£vâغ´©ے%5ح‹Oذâv€ا¯ْ4تùٌˆ–
¼

我正在尝试读取此文件,但我无法读取所有内容。我只能读取其中的 117 个字符我的代码是:

 ifstream infilo;
 infilo.open("C:\\Dev-Cpp\\rc4\\in_cipher.txt");
 std::string cipher((std::istreambuf_iterator<char>(infilo)),
             std::istreambuf_iterator<char>());

此代码适用于其他程序。

【问题讨论】:

  • 确保以二进制模式打开文件
  • infilo.open("C:\\Dev-Cpp\\rc4\\in_cipher.txt", ios::binary);

标签: c++ file encryption io


【解决方案1】:

需要以二进制方式打开文件:

 infilo.open("C:\\Dev-Cpp\\rc4\\in_cipher.txt", std::ifstream::in | std::ifstream::binary);

【讨论】:

  • 但是如果我以二进制模式读取它,我可以使用字符串的内容来执行另一个过程吗,很抱歉再次询问,但我是 C++ 新手
  • 它是加密的二进制数据,因此在技术上它不再是字符串。如果您需要将其作为字符串处理,您可以考虑将加密数据转换为十六进制表示(或其他格式)或使用加密方法输出字符串作为加密。
  • 如何在另一个进程中使用 char 的二进制文件
  • a char 只是一个 8 字节的值,因此您仍然可以将其作为 std::vector 来处理,而不是 std::string。
  • 欢迎您。如果对您有帮助,我会很高兴接受答案。
猜你喜欢
  • 1970-01-01
  • 2015-09-03
  • 2013-11-19
  • 2011-10-25
  • 2018-11-28
  • 2017-11-01
  • 2012-11-18
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多