【发布时间】:2013-09-27 23:22:28
【问题描述】:
我不是密码学、破解密码和安全方面的专家。 我需要在首选项中存储用于将客户端连接到 SQL 服务器的 SQL 服务器的密码和用户名。
我一直在阅读,主要是在 SO,但其中大多数都超过 2 年,我们都知道安全世界正在快速变化。
根据我的阅读,我得出的结论是,大多数人建议使用 SHA-XXX 对密码进行哈希处理和/或建议使用 jasypt 来加密和解密密码
所以我的问题是保护首选项文件中的密码最安全的方法是什么? 我可以将 SHA-512 与盐一起使用并将盐也保存在首选项文件中吗?这安全吗?
【问题讨论】:
-
没有什么是安全的,它是一种让您安心的措施。总有一些方法可以解密加密数据。
-
密码不是用来解密的。无论您做什么,都不要使用 jasypt 来加密和解密密码。除非你有一个非常很好的理由。对于密码,散列总是更安全。
-
很高兴您正在研究这个,并发现加盐哈希是处理密码的好方法。但是,它们的目的是让您保持用户对 您的 系统 (
if hash(entered_password) == stored_hash, continue) 的访问权限,而不是让您保持用户对 other 的访问权限的一种方式 系统。您可以使用密码登录 SQL Server(尽管您不应该这样做);你不能使用哈希。
标签: java security encryption