如何使用Spring的StandardPasswordEncode?

发布于 2024-12-09 22:06:34 字数 257 浏览 1 评论 0原文

StandardPasswordEncoder encoder = new StandardPasswordEncoder("secret");
String result = encoder.encode("myPassword");
assertTrue(encoder.matches("myPassword", result));

这一切都很清楚,但在数据库中,我只存储一个 VARCHAR 密码字段,存储由盐连接的哈希值?真有这么简单吗?

StandardPasswordEncoder encoder = new StandardPasswordEncoder("secret");
String result = encoder.encode("myPassword");
assertTrue(encoder.matches("myPassword", result));

This is all clear, but in database I just store a single VARCHAR password field storing hashed value concatenated by salt? Is it that simple?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

云归处 2024-12-16 22:06:34

在数据库中,您应该存储 endocer.encode 的返回值。

仅存储单个 VARCHAR 密码字段,该字段存储由盐连接的哈希值?

这是错误的(或者可能只是写得不正确),正确的是:

  • 在第一步中,将盐添加到密码中,
  • 在第二步中,计算哈希值(根据加盐密码)

hash(password+salt)

但不是相反 hash(password)+salt


人们说不要将密码存储为纯文本,但散列密码仍然是纯 abracadabra 文本

人们的意思是您不应该按原样存储密码(纯文本),但当然您可以将散列存储在文本表示形式中。 -- 人们谈论的问题是,如果任何人有权访问数据库,他不应该能够读取密码来使用它们。如果您认为将密码存储为哈希(例如 md5)不够安全,因为众所周知的 md5(明文表),那么可以在之前添加一个盐,并希望密码+盐不在该表中。

In the Database you should store the return value of endocer.encode.

just store a single VARCHAR password field storing hashed value concatenated by salt?

That is wrong (or may only not correct written), correct is:

  • In the first step the Salt is added to the password,
  • In the second step the hash is calculated (from the salted password)

hash(password+salt)

But NOT the other way around hash(password)+salt!


People say not to store passwords as plain text , but hashed passwords are still plain abracadabra text

The people mean that you should not store the password as it is (plain) but of course you can store the hash in a text representation. -- The problem that the people talk about is, that if anybody has access to the database he should not bean able to read the passwords to use them. If you think that storing passwords as hash (for example md5) is not secure enough, because of well known md5--cleartext tables, then one add a salt before, and hope that password+salt is not in that tables.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文