我不是密码学、破解密码和安全方面的专家。我需要在首选项中存储用于将客户端连接到 SQL 服务器的 SQL 服务器的密码和用户名。
我一直在阅读,主要是在 SO 中,但其中大多数都超过 2 年,我们都知道安全世界正在快速变化。
根据我的阅读,我得出的结论是,大多数人建议使用 SHA-XXX 对密码进行哈希处理和/或建议使用jasypt来加密和解密密码
所以我的问题是在首选项文件中保护密码的最安全方法是什么?我可以将 SHA-512 与盐一起使用并将盐也保存在首选项文件中吗?这安全吗?
我不是密码学、破解密码和安全方面的专家。我需要在首选项中存储用于将客户端连接到 SQL 服务器的 SQL 服务器的密码和用户名。
我一直在阅读,主要是在 SO 中,但其中大多数都超过 2 年,我们都知道安全世界正在快速变化。
根据我的阅读,我得出的结论是,大多数人建议使用 SHA-XXX 对密码进行哈希处理和/或建议使用jasypt来加密和解密密码
所以我的问题是在首选项文件中保护密码的最安全方法是什么?我可以将 SHA-512 与盐一起使用并将盐也保存在首选项文件中吗?这安全吗?
您似乎想稍后解密并使用该密码对服务器进行身份验证。这意味着您不能对其进行散列 - 如果您希望用户输入密码然后检查它是否正确,则散列很好,但您无法解密散列密码以将其呈现给服务器。
由于您的应用程序需要能够解密密码才能使用它,因此获得配置文件访问权限的攻击者将能够以与您的应用程序相同的方式解密密码。不管你做什么,你只能让获取密码变得更烦人(即通过模糊来混淆/安全)。
您可以采取的步骤(在大括号中采用该方法的程序名称):