2013-12-08 48 views
-1

我有一个程序需要一个文本文件并对其进行加密该程序可以正常工作,但是再次解密该加密文件时,在阅读内容时出现问题,我真的不知道为什么?在C++中使用IO文件进行加密和解密

输出文件包含:

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ك[email protected]®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تùٌˆ– 
¼ 

我试图读取该文件,但我不能阅读所有的content.i的只能读取117字符是我的代码是:

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

此代码适用于其他程序。

+5

确保您在二进制模式 – A4L

+0

'infilo.open(“C打开文件:\\开发-CPP \\ \\ RC4 in_cipher。 txt“,ios :: binary);' – suspectus

回答

1

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

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

但是,如果我以二进制模式读取它,我可以使用字符串的内容来做另一个进程,我很抱歉再次问,但我是新的C++ –

+0

它是encyrpted二进制数据,所以它在技术上不再是一个字符串。如果您需要将其作为字符串处理,您可以考虑将加密数据转换为十六进制表示形式(或其他格式)或使用加密方法输出字符串,因为它是加密的。 – Devolus

+0

如何在二进制文件中使用二进制文件char –

相关问题