我正在尝试为我的项目开发用户身份验证。为了实现这一点,我创建了一个包含两个用户名和密码列的表。 用户名按原样存储,密码使用jasypt加密。
,用户在注册期间输入的密码使用加密密钥加密,然后放入相应的列中。
当用户想要登录应用程序时,程序会获取同一用户的加密密码,密码会使用相同的加密密钥解密。
然后将解密的密码与输入的密码匹配。
这是正确的实施方式吗?
我甚至发现还有其他方法可以实现密钥和值对。但我无法理解这一点。请帮助资源。或者一些简短的解释
答案 0 :(得分:0)
听起来正确:)为什么要改变已经有效的东西? :)这不是完美的安全性,但你做得很好,而且是其他方法,但我发现你没有问题(不需要另一个加密)。
http://nelenkov.blogspot.co.il/2012/04/using-password-based-encryption-on.html
http://security.blogoverflow.com/2013/09/about-secure-password-hashing/
不需要其他信息;)
答案 1 :(得分:0)
您的方法的问题是您必须妥善保管加密密钥的安全性
这是网站或应用程序身份验证的正常方式:
在注册期间使用哈希算法(MD5之前很流行但现在证明是不安全的)来加密密码+ salt,其中salt是随机字符串。然后使用用户名存储哈希值和salt。
当用户想要登录并输入用户名和密码时,首先将salt添加到密码并使用相同的哈希算法对其进行加密。然后查看结果是否与存储的哈希值匹配。