【问题标题】:Password Encryption / Decryption using Spring使用 Spring 进行密码加密/解密
【发布时间】:2012-01-19 14:27:56
【问题描述】:

我想知道 Spring / Spring Security 是否提供加密 / 解密密码的方法。

该场景基本上是加密密码并存储在数据库中,并在登录时对其进行用户身份验证。

【问题讨论】:

  • 一般来说,密码应该被散列而不是加密和解密。您比较哈希值以查看用户输入的值是否正确。
  • @rich.okelly 你能提供这方面的任何例子吗
  • SO 可以在这里提供帮助 - 请参阅 stackoverflow.com/questions/326699/…
  • 存储的密码应该是散列和salted。应该没有合理的方法可以从分贝的内容中重建原始密码,您需要做的就是验证输入的密码是否匹配。

标签: java spring spring-security


【解决方案1】:

【讨论】:

  • +1 for Spring Security 还可以看看为实际编码集成 Jasypt - stackoverflow.com/a/3771336/114340
  • 但这将有助于对密码进行编码,我如何解码密码,这是我的要求的一部分
  • 您没有解码密码。您将用户密码的哈希值保存在您的数据库中。要验证用户的密码,您需要使用相同的哈希算法再次计算用户的输入,然后将存储的哈希值与计算的哈希值进行比较。
  • 是的,没错,但是当我想连接到数据库时,我必须将场景解码为密码,该数据库的密码以编码形式存在。
  • 您要加密的是用户密码还是数据库密码?用户密码不应该是可解密的。
【解决方案2】:

【讨论】:

  • 这些只是指向文档的链接,可能会中断。想详细说明一下吗?在您的答案中显示其中一个示例?否则,您的答案可能会被删除,因为我们在链接失效方面存在严重问题。
【解决方案3】:

在保护对数据库、LDAP 或其他资源的访问的情况下,现在您可以使用Spring Boot Cloud CLI for passwords encryption and decryption

$ spring encrypt mysecret --key foo 682bc583f4641835fa2db009355293665d2647dade3375c0ee201de2a49f7bda

$ spring 解密 --key foo 682bc583f4641835fa2db009355293665d2647dade3375c0ee201de2a49f7bda 我的秘密

稍后您可以在Spring Cloud Config 中使用这些密码。

【讨论】:

    猜你喜欢
    • 2018-12-10
    • 1970-01-01
    • 2016-04-10
    • 2010-10-10
    • 1970-01-01
    • 2018-06-26
    • 2013-11-06
    • 2016-06-04
    • 1970-01-01
    相关资源
    最近更新 更多