回答
丹,請看看這個線程,因爲有一些有用的信息可以告訴我們如何在屬性文件中通過Java的API來做到這一點。
在安全Base64編碼的實質將幾乎任何「硬」加密爲好。
(爭端的意見:))。
編輯:OK,近期downvote我帶到這裏來加點的詞語。
以上聲明旨在提醒人們,它是不可能有任何自動活動以安全的方式驗證給其他方。如果您使用密碼來加密和解密存儲的密碼,那麼您將在哪裏存儲此新密碼?簡單!只需製作第三個密碼即可安全存儲第二個密碼等。
要點是:任何可以通過某些自動程序解密的密碼實際上是而不是已加密但只是被混淆。因此,加密首先是徒勞的。
這並不完美,但仍然更好。你是對的,你將不得不繼續在密碼上添加密碼......但將它放在明顯的位置可能會更糟糕。假設您爲外部服務存儲密碼以代表用戶進行身份驗證。如果你以純文本的形式存儲它,並且你的數據庫(僅)被破壞,他們將獲得密碼。如果你對它們進行了加密並將密鑰存儲在一個文件(和運行時的應用程序內存)中,並且數據庫(僅)被破壞,那麼攻擊者將不得不暴力破解密鑰。每條記錄使用鹽會減慢它們的速度。 –
當然你是對的。然而,你說「並且把密鑰存儲在一個文件中」......如果有一天這個文件需要去互聯網上旅行,它就會全部消失。我想可以歸結爲盡力而爲的技術來分離所需的信息,並希望沒有人能夠看到所有的個體零件。 – JimmyB
當然,完全同意! –
通常密碼保存爲散列,因此獲取真實密碼的過程是不可能的,除了將其轉換回我們所做的是我們將用戶輸入的密碼轉換爲散列並匹配它們。如果您可以更詳細地解釋您的用例,則可以清楚地知道
散列和加密也是兩件事,encription是一種可以轉換回來的形式,但散列是單向的道路。 –
- 1. PHP雙向加密加密
- 2. PHP雙向加密
- 3. AES雙向加密加鹽
- 4. php中的雙向加密
- 5. 雙向加密+查找?
- 6. Android Java庫雙向兼容
- 7. Java JSSE TLS - 此連接是否在雙向安全加密?
- 8. Java:加密的服務器/客戶端雙向通信?
- 9. Java還是Spring:用鹽進行雙向加密?
- 10. 圖像的簡單雙向加密
- 11. 數據的雙向加密PHP
- 12. 推薦Ruby的雙向加密寶石?
- 13. 加密Java和解密C#和反向
- 14. PHP和MySQL的安全性:單向加密Vs的雙向加密
- 15. 用於第三方集成的雙向密碼加密
- 16. 使用密鑰的簡單雙向加密技術/算法?
- 17. Java/Scala雙向MD5
- 18. 雙向加密算法php如何加密數據比輸入數據更短?
- 19. Java:向JFrame添加密鑰監聽器
- 20. 雙向數據庫加密,即使從管理中也是安全的
- 21. SQL雙向加入
- 22. Java中的雙面(雙向)列表
- 23. Java密碼加密
- 24. Java密碼加密
- 25. Java加密/解密
- 26. Python中的雙重加密
- 27. JS-C#雙AES加密
- 28. Java中的雙向映射?
- 29. java中的雙向收集
- 30. Java EE - 一對多雙向
如果您使用基於密碼的加密(雙向技術)加密密碼,並且攻擊者知道您的加密密碼,則您的所有用戶密碼將爲透露(並且可能一次全部)。如果你沒有這樣的加密密碼(或密鑰)能夠解密,這個風險就會消失,攻擊者將不得不信任暴力或類似的策略。找到[HERE](http://www.jasypt.org/howtoencryptuserpasswords.html) – AndroidHustle
這是對的。密碼應始終爲[_hashed_](http://en.wikipedia.org/wiki/Hash),並且不得加密。 – dwalldorf
@entek:我認爲你誤解了這個問題,因爲我讀到這不是關於存儲用戶密碼,而是訪問數據庫的密碼。您需要連接數據庫用戶和密碼。現在,對於Web應用程序來說,這應該由應用程序服務器通過JNDI資源處理並安全地存儲密碼,但是如果您正在編寫通過JDBC訪問數據庫的普通舊Java應用程序,則您需要密碼。並且以純文本形式保存是不行的,所以加密密碼絕對是一個有效的用例... – beny23