这段时间在写一个没有后台的项目,由于没有后台,所以数据的存储加密只能在前端完成。虽然前端不管怎么加密,都无法做到绝对,但是有必要让数据更加安全的存储,增加破解难度。
下面来看看我是如何利用so库加密数据的,由于需要加密的数据是string,所以暂时只介绍string的加密。后续有时间再更其他类型的。
在github上有一个可以自动生成加密so库的插件,如何集成看这里cipher.so. 这样通过在gradle里配置需要加密的数据,就可以了。
其实做到上面的集成基本就可以完成数据的加密了,有时候有些业务要求不能将敏感的数据直接硬编码在代码里,这样在gradle里去配置加密数据就过不了这一关,最后想到的是利用这个插件生成后的so库及生成的类,这样硬编码在代码里的key是加密后的key,这样子就解决了将敏感数据直接硬编码在代码里的问题了。但是在这个过程中,也踩了坑,就是路径找不到问题。
首先需要的是生成后的so库,在src的main下建一个目录jniLibs用来放so库。然后将生成的类放在java目录下。这样就可以了。目录截图如下: