我想保存一个加密的密码(加密可能是手动生成的,也可以使用java代码,加密技术类型无关紧要),然后java代码将从文件中读取加密的密码并对其进行解密。
发布于 2019-02-26 01:30:04
请求有人为您编写代码超出了此站点的范围。Java已经有了相当好的文档,如果您需要对它的一个特定方面的帮助,可以发布一个关于它的新问题(在这里,或者可能在StackOverflow上)。然而,我们可以提供建议,取决于你需要什么。这个答案有点笼统,因为你还没有给出太多的信息。
首先,一个一般性的忠告:如果可能的话,密码不应该存储在纯文本或可逆加密下。有明显的例外,例如密码管理器实用程序,但这些例外是由安全专家编写的,或者至少是与安全专家合作编写的。因为你不是其中之一,所以第一个要问自己的问题是:你真的需要能够存储和解密密码吗?
此外,像这样的系统的一般问题是“您从哪里获得解密密钥”?硬编码到应用程序中的密钥,或者存储在文件系统上的纯文本中的密钥,除了将密码(或任何秘密)存储在纯文本之外,并没有提供真正的额外安全性;能够访问密码文件的攻击者也可以访问密钥文件(或从二进制文件中提取密钥),并像应用程序一样使用该密钥解密密码。
下面是一些示例场景(其中一些是重叠的):
有可能你只是不能有意义地保护秘密,因为没有地方可以存储密钥。在这种情况下,你运气不好,需要重新设计你的系统或者接受风险。您可以尝试将密钥与另一个密钥或二进制文件中硬编码的XOR掩码相结合,然后混淆二进制文件以减缓反向工程的尝试,但这并不是真正的安全性,就像减速是一道墙一样。(不要只在二进制文件中使用模糊密钥,因为如果不更新整个程序,它们就不能更改密钥。)
https://security.stackexchange.com/questions/204266
复制相似问题