保护嵌入式密码

然后:

我在Java中有一个属性文件,在其中存储我的应用程序的所有信息,例如徽标图像文件名,数据库名称,数据库用户和数据库密码。
我可以将加密的密码存储在属性文件中。
但是,可以使用反编译器从罐子中读取密钥或密码短语。
有没有一种方法可以将db pass安全地存储在属性文件中?

Dhananjay Nene:

有多种方法可以解决此问题。如果您能找到一种方法,让用户在应用程序启动时为密钥库提供密码,则最合适的方法是使用密钥对所有值进行加密,然后将该密钥存储在密钥库中。密钥库的命令行界面是使用keytool进行的。但是,JSE也具有API以编程方式访问密钥库。

如果您没有能力让用户在启动时手动为密钥库提供密码(例如,对于Web应用程序),则一种方法是编写一个异常复杂的混淆例程,该例程可以对密钥进行混淆并将其存储在属性文件。要记住的重要事项是,混淆和去混淆逻辑应该是多层的(可能涉及加扰,编码,引入虚假字符等),并且本身应该至少具有一个可以在应用程序的其他类中隐藏的键。使用不直观的名称。这不是一种完全安全的机制,因为具有反编译器并且有相当多的时间和智能的人仍可以解决该问题,但这是我所知道的唯一一种不需要您破解本机(即,不容易反编译)代码的机制。 。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章