我正在編寫一個C#應用程序,它將是開源的,我需要能夠爲每個用戶存儲保存的登錄信息。通常,我只是加密密碼,然後將其存儲在用戶設置文件中,但我擔心由於代碼是開源的,它會破壞加密的密碼。由於所有人都需要做的就是查看代碼並獲取加密密鑰。在開源應用程序中存儲保存的密碼
當然,它至少比以純文本存儲密碼困難得多。但是,是否有任何體面的密碼加密方式,但即使您有源代碼,仍然至少非常難以解密密碼?也許這樣做至少幾乎是 不可能在任何計算機上解密,而不是在它被加密的計算機上解密?
編輯:說明......我正在存儲客戶端的密碼,而不是密碼來驗證他們的服務登錄。它是我無法控制的預先存在的Web服務的客戶端。我只想在本地存儲密碼以進行自動登錄......就像任何聊天客戶端一樣。
編輯2:完全抱歉不清楚。但密碼必須以明文形式在某個時間點檢索,並且哈希不是一種選擇:(即使服務允許我傳遞密碼哈希值,但這樣可能會使目標失敗,因爲哈希值將與密碼一樣好:P
不明白你對哈希的意思......我需要密碼的實際明文,因爲它必須從我的客戶端傳遞給服務(這是一個加密的連接),不能散列。 –
根據您收到的密碼,再次計算哈希值並將其與您在數據庫中存儲的哈希值進行比較。如果它們匹配,則密碼匹配。當然,如果你需要密碼從你的服務器登錄到其他地方,這對你無能爲力。 – Krumelur
他改變了這個問題的一部分,真正澄清,投票下來是一個不公平的。 – Lloyd