【问题标题】:How to implement authentication in Standard way?如何以标准方式实现身份验证?
【发布时间】:2015-02-21 12:45:56
【问题描述】:

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

即用户在注册时输入的密码使用加密密钥进行加密,然后放在相应的列中。

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

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

这是正确的实施方式吗?

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

【问题讨论】:

  • 散列密码和存储散列应该比加密更可取
  • 你的做法是对的!!!无需更改。
  • @UkuLoskit,感谢您提供的信息。我是否正在寻找正确的散列材料。 jasypt.org/encrypting-passwords.html。抱歉有点丢了。:(
  • @user2900314 你可以用谷歌搜索它;)。这是我认为对你有帮助的howtodoinjava.com/2013/07/22/…
  • “标准方式”是对密码进行哈希处理,而不是对其进行加密。

标签: java passwords password-encryption jasypt


【解决方案1】:

听起来是对的 :) 为什么要更改已经有效的东西? :) 没有完美的安全性,但你负担得起,还有其他方法,但我认为你的没有问题(不需要再次加密)。

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/

不需要其他信息;)

【讨论】:

  • 感谢您提供更多信息。我一定会通过这些材料。
【解决方案2】:

您的方法的问题是您必须注意加密密钥的安全性

这是一种常见的网站或应用程序认证方式:

注册时使用哈希算法(以前流行MD5,现在证明不安全)加密密码+salt,其中salt是随机字符串。然后用用户名存储哈希值和盐。

当用户想要登录并输入用户名和密码时,首先在密码中添加盐,并使用相同的哈希算法对其进行加密。然后查看结果是否与存储的哈希值匹配。

【讨论】:

  • 好的,那么现在遵循的程序是什么?虽然满足了我的要求。我还是想知道更多。
  • 下面的过程是如果匹配则接受,否则拒绝:)
猜你喜欢
  • 1970-01-01
  • 2015-07-14
  • 1970-01-01
  • 2015-01-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-09-28
  • 1970-01-01
相关资源
最近更新 更多