我們爲學校項目製作了一個系統,我們的教授告訴我們不要在數據庫中以純文本形式存儲密碼。她希望我們加密這些密碼的安全性,因爲我們的系統將處理大量的機密數據。所以我們決定使用MD5來做密碼散列問題是我沒有真正知道我們將如何在登錄過程中實現它。用於密碼的MD5消息摘要在Java中的實現
0
A
回答
0
歡迎來到SO。我認爲那裏有一篇類似於你的文章已經得到了回答,但我會告訴你我是如何解決它的。
private String encryptPassword(String password) throws NoSuchAlgorithmException{
MessageDigest md = MessageDigest.getInstance("MD5");
md.update(password.getBytes());
byte[] digest = md.digest();
StringBuilder stringBuilder = new StringBuilder();
for (byte b : digest) {
stringBuilder.append(String.format("%02x", b & 0xff));
}
return stringBuilder.toString();
}
正如你可以看到上面的方法,我是如何加密通過參數傳遞的字符串的密碼。 MD5是一種單向加密,因此您無法使用Java解密它,但有一些工具。
因此,您應該做的是在用戶註冊時(假設您可以在系統中添加用戶)轉換密碼,然後將轉換後的值作爲字符串(varchar或text)存儲在數據庫中。然後,當你想登錄時再次使用相同的方法,然後將結果與數據庫中的任何密碼進行比較。這些世代不是隨機的,所以如果你輸入像「123」那樣生成的哈希每次都是一樣的。
相關問題
- 1. 消息摘要散列MD5
- 2. PHP等價的Java消息摘要MD5的
- 3. 爲Java中的ws-security UsernameToken實現密碼摘要
- 4. 的Java消息摘要不起作用
- 5. 與摘要:: MD5
- 6. Java中的MD5實現
- 7. NodeJS 6加密抱怨在棄用消息中摘要?
- 8. 如何實現消息的定期摘要?
- 9. 要在Win32應用程序中實現HMAC-MD5加密算法
- 10. 在Java中解密AES編碼的消息(用Python加密)
- 11. 使用密碼加密消息java
- 12. 驗證摘要消息中的鏈接
- 13. OTP S/KEY一次性密碼 - 摺疊MD5摘要輸出
- 14. 在md5中加密密碼?
- 15. Java ME中的MD5密碼散列
- 16. 解密加密消息摘要時出現非法塊大小異常
- 17. 消息摘要拉斯特
- 18. 使用Java庫jasypt摘要加密密碼
- 19. 在Java中實現Feistel密碼的小實現
- 20. 使用消息摘要與J2ME應用
- 21. XMPPFramework Facebook登錄摘要-md5
- 22. 在Java中使用MD5和Salt進行密碼加密
- 23. 實現一個使用Vigenère密碼加密消息的程序,C
- 24. AS3中的Md5密碼
- 25. 在不使用密碼的情況下在Java中實現RSA
- 26. 在PostgreSQL中存儲FreeRADIUS用戶密碼的SHA1哈希摘要
- 27. 不同的驗證消息和驗證摘要消息
- 28. 恢復下載的MD5摘要
- 29. MD5密碼解密
- 30. Java服務器代碼/ Web服務器中的基本/摘要認證實現
無論如何,「很多機密數據」對MD5來說看起來不太合適;而且......你到目前爲止做了什麼? –
這是一個學校項目,我們知道還有其他更好的選擇。看來這是最簡單的方法。 – rosep