Ger*_*ero 7 java security passwords copy-protection embedded-resource
我在java中有一个属性文件,我存储了我的应用程序的所有信息,如徽标图像文件名,数据库名称,数据库用户和数据库密码.
我可以存储在属性文件上加密的密码.
但是,可以使用反编译器从jar中读取密钥或密码.
有没有办法安全地将db传递存储在属性文件中?
有多种方法可以管理这个问题。如果您能找到一种方法,让用户在应用程序启动时为密钥库提供密码,最合适的方法是使用密钥加密所有值,并将该密钥存储在密钥库中。密钥库的命令行界面是使用 keytool。然而,JSE 也有 API 可以通过编程方式访问密钥库。
如果您无法让用户在启动时手动向密钥库提供密码(例如对于 Web 应用程序),一种方法是编写一个异常复杂的混淆例程,该例程可以混淆密钥并将其存储在还有一个属性文件。需要记住的重要一点是,混淆和反混淆逻辑应该是多层的(可能涉及加扰、编码、引入虚假字符等),并且本身应该至少有一个可以隐藏在应用程序中其他类中的密钥使用不直观的名称。这不是一种完全安全的机制,因为拥有反编译器和相当多的时间和智力的人仍然可以解决它,但这是我所知道的唯一不需要您闯入本机(即不易反编译)代码的机制。
归档时间: |
|
查看次数: |
1616 次 |
最近记录: |