在我正在创建的maven项目中,程序使用的资源文件夹下有一个属性文件(包含敏感信息,凭据)。
虽然将它打包在jar中是有任何方法可以使用户无法访问此文件(如果用户解包jar,用户不应该知道这样的文件存在)。该罐旨在暴露给用户供公众使用。
问题是在创建jar时是否有办法实现这一点,或者在项目中是否有一些模式要用于此目的。
提前致谢!!
答案 0 :(得分:2)
没有。基本上,如果您的代码在用户的设备上运行,并且您的代码需要这些信息,那么您应该希望用户能够访问这些信息。
你可以用各种方式掩盖它 - 例如用一个在jar文件中固有的密钥加密它,或者甚至用一个通过网络获取的密钥加密它 - 但从根本上说,没有秘密存在。想象一下有人编写了一个程序,它将你的jar文件放在类路径中并执行jar文件中的一些代码 - 获取凭证的代码......他们在调试器中逐步执行代码,并且他们拥有信息。在极端情况下,这是一个问题,即使凭证根本不在jar文件中,但是通过互联网获得...你需要某种可信的执行模型,它阻止信息被访问,除非它保证来自您的程序,而不是调试器,用户无法快照内存。
简而言之:如果信息非常敏感,则不能在用户的设备上。