gpt4 book ai didi

java - 在首选项/属性文件中加密密码 - Java

转载 作者:塔克拉玛干 更新时间:2023-11-01 21:56:38 24 4
gpt4 key购买 nike

我不是密码学、破解密码和安全方面的专家。我需要在首选项中存储用于将客户端连接到 SQL 服务器的 SQL 服务器的密码和用户名。

我一直在四处阅读,主要是在 SO 中,但其中大多数都超过 2 年,我们都知道安全世界正在快速变化。

根据我的阅读,我得出的结论是大多数人建议使用 SHA-XXX 和/或建议使用 jasypt 对密码进行哈希处理。对密码进行加解密

所以我的问题是在首选项文件中保护密码的最安全方法是什么?我可以只使用带盐的 SHA-512 并将盐也保存在首选项文件中吗?这样安全吗?

最佳答案

您似乎想稍后解密并使用该密码对服务器进行身份验证。这意味着您无法对它进行哈希处理 - 如果您希望用户输入密码然后检查密码是否正确,则哈希处理很好,但您无法解密哈希后的密码以将其呈现给服务器。

由于您的应用程序需要能够解密密码才能使用它,因此获得配置文件访问权限的攻击者将能够像您的应用程序一样解密密码。无论您做什么,都只会让获取密码变得更加烦人(即通过模糊处理/安全性)。

您可以采取的步骤(在大括号中采用该方法的程序名称):

  • 以某种专有方式对其进行加密。它不需要是安全的,因为无论您做什么,它都不会如果有人想知道您是如何做到的,他们可以编写一个工具来显示密码。对此您无能为力。您只是防止随意阅读,即使是简单的 XOR 也足以做到这一点。 ( Miranda )
  • 使用静态 key (任何获得 key 的人都可以解密)。
  • 使用适当的加密方法和随 secret 钥对其进行加密,并将 key 存储在密码旁边。 ( Firefox )
  • 使用从某些跨系统更改的数据(例如 Windows 上的用户或系统 SID)派生的 key ,使用适当的加密方法对其进行加密。这样做的好处是,如果有人窃取了配置(而不是其他任何东西),然后又试图解密它,他就做不到。这样做的缺点是将配置文件复制到另一个安装会破坏密码,因此您需要处理这种情况。
  • 不对其进行加密以避免提供虚假的安全保障。 ( Pidgin )
  • 将密码存储在某种操作系统提供的钱包/凭据管理器中(Windows 凭据管理器、Gnome key 环、KDE ​​钱包)

关于java - 在首选项/属性文件中加密密码 - Java,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19061537/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com