Java:简单的文本文件加密?

标签 java encryption password-encryption

我的小游戏中有以下三行,用于存储新用户的 ID 和通行证:

Properties prop = new Properties();
prop.setProperty(id, pass);
prop.store(new FileOutputStream(new File("path/to/project/src/properties.data")), "");

不幸的是,我注意到,只有将 properties 文件扩展名更改为 txt,所有用户和密码才可以被任何人看到和读取,这是我不太喜欢的事情。请让我知道一个以某种方式加密文件的好简单方法。

问题是我已经搜索过这个问题,但答案并不真正符合我的需求,我不希望我的游戏文件受到最大的黑客的攻击,所以使用 AES 或任何其他大型流行库都太多了我会说。你觉得怎么样?

最佳答案

首先,每个人都可以读取您的密码文件,无论扩展名是 .txt.data 还是其他。该扩展名只是 Windows 的一个技巧,用于决定使用哪个程序打开该文件,但它对内容没有任何作用。

如果您想加密密码文件,您需要一个 key 和/或密码,然后您需要弄清楚在哪里以及如何存储它。你只是推迟了问题的解决。

如果文件包含游戏中玩家的姓名和密码,请遵循@Boris the Spider 的建议:不要保存(加密)密码,只需保存密码的哈希值。当有人登录时,计算输入密码的哈希值并将其与您保存的哈希值进行比较。如果相等,则用户输入了正确的密码。请参阅this question and the accepted answer寻找一种可能的方法来做到这一点。

关于Java:简单的文本文件加密?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38688949/

相关文章:

java - 我的 Android 服务在启动时无法启动

java - 使用复制构造函数同时修改列表

c - 与 OpenSSL 命令兼容的关键功能的密码?

java - 在spring xml文件中隐藏数据源密码

java - 我想让程序运行,以便字符的大小写不敏感

java - 如何使用多线程使我的应用程序更快

php - 在MySql中使用AES_ENCRYPT加密多个变量

Javascript 加密

c++ - C++ 的 RSA 加密 (BB10)

php - bcrypt 和随机生成的盐