如何存储密码?
答
将密码保存到数据库使用散列(MD5或SHA256)并将散列值存储在数据库表中之前。
登录时,取出用户密码并使用相同的技术再次对其进行哈希处理,并与存储在数据库表中的哈希密码匹配,以便为此特定用户使用。如果这两个散列值匹配,那么它是正确的密码,否则密码不匹配。
答
仅在必要时加密和解密密码(例如,您想检查6位密码中的3位)。
如果你只是想检查密码保存哈希码,只是比较哈希码。
对MD5一看,这里是源代码片段:
MessageDigest md = MessageDigest.getInstance("MD5");
你不 “加密” 的密码。你哈希他们。 – 2014-12-03 14:13:54
谷歌有多篇关于这方面的文章,例如http://howtodoinjava.com/2013/07/22/how-to-generate-secure-password-hash-md5-sha-pbkdf2-bcrypt-examples/。 – abalcerek 2014-12-03 14:20:41
我尝试通过数据加密标准(DES)机制来加密或解密文本,但不起作用,因为我的SecretKey总是在变化。但是从上面的链接工作中像例如哈希密码。 – David 2014-12-03 14:49:06