如何以标准方式实现身份验证?

时间:2014-12-23 11:17:33

标签: java passwords password-encryption jasypt

我正在尝试为我的项目开发用户身份验证。为了实现这一点,我创建了一个包含两个用户名和密码列的表。 用户名按原样存储,密码使用jasypt加密。

,用户在注册期间输入的密码使用加密密钥加密,然后放入相应的列中。

当用户想要登录应用程序时,程序会获取同一用户的加密密码,密码会使用相同的加密密钥解密。

然后将解密的密码与输入的密码匹配。

这是正确的实施方式吗?

我甚至发现还有其他方法可以实现密钥和值对。但我无法理解这一点。请帮助资源。或者一些简短的解释

2 个答案:

答案 0 :(得分:0)

听起来正确:)为什么要改变已经有效的东西? :)这不是完美的安全性,但你做得很好,而且是其他方法,但我发现你没有问题(不需要另一个加密)。

Android: Encrypt password

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添加到密码并使用相同的哈希算法对其进行加密。然后查看结果是否与存储的哈希值匹配。