2013-12-08 85 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 –

相關問題