【问题标题】:How safe is a password stored in database with these conversions?通过这些转换存储在数据库中的密码有多安全?
【发布时间】:2017-11-10 16:39:20
【问题描述】:

将密码转换为字节、二进制和散列的安全性如何。在数据库中?比如存储一个 jPasswordField 密码。

【问题讨论】:

  • 散列是编码...为什么您可能想先将字符串显式转换为字节然后再转换为二进制?只需使用现代散列算法对其进行散列即可。
  • @doelleri 哦,好的。因为我找不到将“字符串”转换为二进制的简洁方法。我知道用'int'。
  • @doelleri - 散列、加密和编码是三个不同的东西。
  • @martinstoeckli 你是对的。我没有考虑那个。我责怪Spring Security

标签: java string passwords int


【解决方案1】:

使用带有随机盐的强哈希是足够安全的。您需要将哈希和盐值都存储在数据库中。您应该阅读有关如何安全存储用户凭据的更多信息,如果您有安全问题,https://security.stackexchange.com/ 可能是一个更好的论坛。

【讨论】:

  • 好的,谢谢。添加二进制转换是否有助于提高安全性?
  • 由于哈希是不可逆的,因此对纯文本密码进行哈希处理与对纯文本密码的二进制编码进行哈希处理一样安全。在散列之前无需以任何其他方式对密码进行编码。
  • 使用 SHA-* 散列密码是安全的,因为它太快了,可以暴力破解3 Giga SHA-256 per second。这就是为什么我们需要一个具有成本因素的密码哈希函数来控制必要的时间。
  • 还有一件事。有没有使用盐的有效方法?
  • @martinstoeckli 很高兴知道。我删除了使用 sha-256 的建议
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-08-27
  • 1970-01-01
  • 2019-11-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多