Java:简单文本文件加密?

Java:简单文本文件加密?,java,encryption,password-encryption,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")), ""); 不幸的是,我注意到只有将属性文件扩展名更改为txt,所有用户和密码才能被任何人看到和读取,这是我真正不喜欢的。请让我知道一个很好的简单的

在我的小游戏中,我有以下三行代码存储新用户的id和通行证:

Properties prop = new Properties();
prop.setProperty(id, pass);
prop.store(new FileOutputStream(new File("path/to/project/src/properties.data")), "");
不幸的是,我注意到只有将属性文件扩展名更改为txt,所有用户和密码才能被任何人看到和读取,这是我真正不喜欢的。请让我知道一个很好的简单的方法,以某种方式加密文件


问题是我已经对此进行了搜索,但答案并不真正符合我的需要,我不希望我的游戏文件受到最大黑客的攻击,因此使用AES或任何其他大型流行库将是太多了。你觉得怎么样?

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

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


如果该文件包含游戏中玩家的姓名和密码,请按照@Boris the Spider的建议:不要保存(加密的)密码,只需保存密码的散列即可。当有人登录时,计算输入密码的哈希值,并将其与您保存的哈希值进行比较。如果它们相等,则用户输入了正确的密码。请参阅以获取可能的方法。

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

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


如果该文件包含游戏中玩家的姓名和密码,请按照@Boris the Spider的建议:不要保存(加密的)密码,只需保存密码的散列即可。当有人登录时,计算输入密码的哈希值,并将其与您保存的哈希值进行比较。如果它们相等,则用户输入了正确的密码。请参阅以获取一种可能的方法。

这是一篇关于安全存储密码的优秀文章。示例是用C语言编写的,而不是Java语言编写的,但这仍然是一个有用的讨论:


我也极力推荐Michael Howard和David LeBlanc的《软件安全的24宗罪》,作为对常见安全漏洞和如何避免它们的更一般的概述。

< P>这是一篇关于安全存储密码的优秀文章。示例是用C语言编写的,而不是Java语言编写的,但这仍然是一个有用的讨论:


我还强烈推荐Michael Howard和David LeBlanc的《软件安全的24宗罪》作为一般安全漏洞的一般概述以及如何避免它们。

< P>我遇到了类似的问题,我在文件中写了一个AES加密的字符串。(在我的例子中,用户被要求从管理员处获取加密密钥以放入属性文件,因此我也提供了一种方法来加密密码)然后在我读取密码的方法中解密密码。

我遇到了类似的问题,我求助于在文件中写入AES加密字符串(在我的例子中,用户被要求从管理员处获取加密密钥以放入属性文件,因此我也提供了一种方法来加密密码)然后用我读到的方法对其进行解密。

对于密码,你应该使用哈希而不是加密。你可以使用类似bCrypt的东西来实现此目的。找到了这个。看起来很酷这里没有足够的信息来建议使用哈希而不是加密。你是否使用存储的密码登录远程服务器?如果是,请使用哈希不起作用。对于写入文件的所有数据的加密(如果这是用例),请使用包装密码流-请参阅、等。另一方面,可能只适合加密单个字段。“我不认为我的游戏文件会受到最大的黑客的攻击,所以我认为使用AES或任何其他大型流行库都太过分了。"你为什么得出这样的结论?如果你需要加密内容,请使用适当的加密工具。其他任何东西都只是模糊处理。对于密码,你应该使用哈希而不是加密。你可以使用类似bCrypt的东西来实现这一目的。找到了这个。看起来很酷这里没有足够的信息来建议使用哈希而不是加密。你使用了吗存储登录到远程服务器的密码?如果是,哈希将不起作用。对于写入文件的所有数据的加密(如果这是用例),请使用包装密码流-请参阅、等。另一方面,可能只适合加密单个字段。“我不认为我的游戏文件会受到最大黑客的攻击,所以我会说,使用AES或任何其他大型流行库都太过分了。”你为什么得出这个结论?如果你需要加密内容,请使用适当的加密工具。其他任何东西都只是混淆。