0

我试图找到在文件中隐藏密码的最佳技术/方法的好方法,但不使用外部 jar 或库。

实际上,我使用一个代表用户名和密码列表的对象。将我的列表转换为 xml(仅在内存中),然后,我使用 AES 存储在一个文件中。

仅使用 java 7,没有外部库。

是一种好的/安全的方法吗?如果这个操作不行,可以动态创建xml加密吗?

谢谢

4

2 回答 2

0

保存使用 AES 加密的密码并不安全,因为:

1)您将密钥存储在哪里?如果将其存储在服务器中,如果攻击者违反服务器并找到密钥,他将完全访问用户信息。
2) 你真的需要知道用户的密码吗?在许多应用程序中,出于安全原因,最好只保留密码的哈希值。用户名可以以明文形式存储,您也可以在密码中添加盐以强制执行。您可以使用 Java7 平台提供的一些算法来做到这一点。这样,即使有人进入你的服务器,他也不能在不破坏哈希函数的情况下使用用户的登录信息。

这是一个对我有用的例子:

public byte[] getHash(String password, byte[] salt, String algorithm) throws NoSuchAlgorithmException, UnsupportedEncodingException {
       MessageDigest digest = MessageDigest.getInstance(algorithm);//The String rapresents the alg you want to use: for example "SHA-1" or "SHA-256"
       digest.reset();
       digest.update(salt);
       return digest.digest(password.getBytes("UTF-8"));
 }

您还可以查看此链接以获取更完整的示例:https ://www.owasp.org/index.php/Hashing_Java

于 2013-01-04T13:57:24.637 回答
0

您可以使用包装在 CipherOutputStream 中的 FileOutputStream。

于 2013-01-04T13:37:15.527 回答