我正在开发一个拥有用户帐户的群组项目。现在我正在试图弄清楚如何加密,存储和检查密码。我们已经实现了存储密码,但尚未加密,然后存储它们。我正在使用Java库Jasypt,更具体地说,我正在使用他们的StandardStringDigester类。
我的问题是,每当我消化相同的字符串时,它会以不同的方式出现。我能找到准确检查字符串是否与消化字符串匹配的唯一方法是使用Digesters Match方法。此方法需要两个参数,即未加密的密码字符串和消化的密码字符串。然而,据我所知,验证永远不应该在客户端进行,服务器端永远不应该看到未消化的密码。那么如何消化密码,将其发送到服务器,然后检查它是否与该用户的存储(也已消化)密码相匹配?
答案 0 :(得分:1)
为了安全地存储密码,您应该了解如何以及为什么,您可以稍微浏览一下论坛,有很多关于此主题的资源。
这是一个更全面的:https://crackstation.net/hashing-security.htm
我的问题是,每当我消化相同的字符串时,它会以不同的方式出现。
据我所知,StandardStringDigester使用salt来哈希输入。这意味着摘要每次都是随机出现的。它应该如何。
那么如何消化密码,将其发送到服务器,
您将密码明文发送到服务器,TLS(HTTPS)应该注意诚信和自信
然后检查它是否与该用户的存储(也已消化)密码匹配?
我相信您正在寻找匹配方法: matches(String message, String digest) Jasyp应该采取盐,用相同的盐创造一个新的消化。如果我错了,请更正/评论