Android中Asset文件夹与gradle.properties存储硬编码数据:哪种更安全?
哪种硬编码数据存储方式更安全?Assets文件夹 vs gradle.properties
结论:将数据存储在gradle.properties中并读取的方式更安全,具体原因如下:
APK打包层面的差异
Assets文件夹里的所有文件都会原封不动打包进最终APK,任何人用普通解压工具就能打开APK取出这些数据,等于把敏感内容直接暴露在外,毫无防护可言。
而gradle.properties是项目构建阶段的配置文件,默认不会被打包进APK。如果把数据通过构建脚本注入到BuildConfig或者代码变量里,最终APK里只有编译后的代码,原始的gradle.properties文件根本不会出现在APK中,直接获取原始数据的难度大很多。逆向获取的门槛差异
就算通过BuildConfig注入的数据最终会出现在编译后的代码里,想要拿到也得对APK做反编译操作(比如用jadx这类工具),这比直接解压APK拿Assets文件的门槛高不少。而Assets里的内容是明文存储,连反编译都不需要,直接就能读取。版本控制与环境隔离的优势
gradle.properties可以轻松区分开发、测试、生产等不同环境的配置,还能通过.gitignore把这个文件排除在代码仓库之外,避免敏感数据被误提交到公开或内部仓库。而Assets文件一般会被纳入版本控制,很容易造成敏感数据泄露。
内容的提问来源于stack exchange,提问作者abhishek maharajpet
相关产品推荐
相关产品推荐

