我在加密文件中的某些數據時遇到問題。我使用簡單的異或。 可以說,我有這樣的結構:二進制文件加密問題
struct MyFile{
char fileName[128];
int account;
float balance;};
保存這是一個二進制文件工作正常,但是當我使用XOR到文件名的結構進行加密並保存結構爲HD然後讀取結構和解密的文件名沒有正確顯示字符。我使用這個簡單的函數來加密/解密的目的。
static void Codec(const char *key,int keySize,char* in,char *result,int length)
{
for(int i=0;i<length;i++)
result[i]=in[i]^key[i%keySize];
}
請注意,當我加密文件名並直接解密它在內存中結果是正確的。我錯過了什麼,爲什麼它保存在硬盤上時被改變。請提前回復,並提前回復...
您無法真正使用'加密'標籤,當詢問XOR問題時......任何傢伙只需要0.0001秒就可以找出你的'鑰匙'。 – 2010-08-03 22:55:57
你是如何編寫/閱讀文件的?而@ Remus,他似乎在使用一次性鍵盤,因爲他的代碼使用了一串鍵。只要他不重用密鑰,這在技術上是安全的。編輯:哦,除非他使用的文件比文件短。然後是的,這將是可笑的容易找出 – Xzhsh 2010-08-03 22:56:30
嘗試異或與它的零鍵 - 是你的算法? – 2010-08-03 23:03:36