2014-12-03 67 views
0

我在jsp中创建了一个登录页面。如何存储密码?

用户名和密码存储在mysql中。

我想要一些加密密码的建议,并稍后解密密码(以验证密码标签中的内容与该用户名的数据库中的内容是否相同)。

+3

你不 “加密” 的密码。你哈希他们。 – 2014-12-03 14:13:54

+1

谷歌有多篇关于这方面的文章,例如http://howtodoinjava.com/2013/07/22/how-to-generate-secure-password-hash-md5-sha-pbkdf2-bcrypt-examples/。 – abalcerek 2014-12-03 14:20:41

+0

我尝试通过数据加密标准(DES)机制来加密或解密文本,但不起作用,因为我的SecretKey总是在变化。但是从上面的链接工作中像例如哈希密码。 – David 2014-12-03 14:49:06

回答

4

将密码保存到数据库使用散列(MD5或SHA256)并将散列值存储在数据库表中之前。

登录时,取出用户密码并使用相同的技术再次对其进行哈希处理,并与存储在数据库表中的哈希密码匹配,以便为此特定用户使用。如果这两个散列值匹配,那么它是正确的密码,否则密码不匹配。

1

仅在必要时加密和解密密码(例如,您想检查6位密码中的3位)。

如果你只是想检查密码保存哈希码,只是比较哈希码。

对MD5一看,这里是源代码片段:

MessageDigest md = MessageDigest.getInstance("MD5");