我正在研究Java RCP應用程序。用戶需要使用智能卡對自己進行身份驗證才能訪問應用程序。在這裏面,他可以打開/保存需要加密存儲的文件。如何安全地存儲加密密碼
目前,我使用帶有硬編碼密碼的基於密碼的AES加密。 這顯然不安全,所以我需要一種不同的方法來加密/解密文件。
什麼引起這個問題是有要滿足幾個條件:
- 沒有保證的網絡連接(必須處於離線模式下可用)
- 多個用戶必須有權訪問文件(所以不公鑰/私鑰加密)
- 不應該有用於所有文件的一個「主」 - 鍵
編輯: 我不需要很高的安全級別。攻擊者只需要打開分佈式JAR文件並以純文本形式獲取密鑰即可獲得密鑰。
任何提示將不勝感激。
不要存儲密碼,存儲密碼的散列。 – 2011-03-17 21:47:26
我需要密碼來重建密鑰並解密文件。所以哈希不起作用。 – st3ve 2011-03-17 21:49:13
使用散列作爲鍵。無論哪種方式,如果_they_找到你的鑰匙,你可能會被擰緊,不管它的存儲格式如何;不要存儲密鑰,但每次通過散列給定的密碼重新構建它 - 有效的密碼=正確的密鑰。 – 2011-03-17 21:50:32