【前言】
?????Android要想实现RSA/AES 之类的加密,最简便的方式是直接使用Android提供的Java层api,但是使用Java层提供的api去加密,别人很容易通过反编译看到你的加密逻辑,然后直接模拟你的加密逻辑去刷接口或者抓包时候直接解密即可,安全系数比较低;要想提高被别人反编译看到加密逻辑的门槛,需要把相关加密逻辑代码放到C层去实现,但是要是自己去实现RSA/AES加密逻辑,那是很浪费时间而且完全没必要的事情,可以借助Openssl 提供的crypto 这个库去实现加密或者md5 ?????网上的openssl编译教程大部分都是比较旧的或者是不太详细,故而有此教程详细记录openssl的编译过程
一、环境要求
1、Linux系统 ,可以在VMware 中装ubuntu linux系统 2、下载Linux版 NDK,解压
1、在shell终端 中输入git命令 下载openssl源码 到当前目录下
git clone git://git.openssl.org/openssl.git
二、编译源码
1、cd进入到openssl目录下,即Configure 文件所在目录 2、使用export命令 新增/修改环境变量ANDROID_NDK_ROOT 指向你的NDK目录,export 的效力仅限于该次登录操作
export ANDROID_NDK_ROOT=/home/jimmy/android-ndk-r23b-linux/android-ndk-r23b
3、将编译openssl所需的NDK命令所在的目录添加到环境变量PATH 中
PATH=$ANDROID_NDK_ROOT/toolchains/llvm/prebuilt/linux-x86_64/bin:$PATH
4、运行./Configure 脚本生成Makefile文件 ,这里指定生成arm64 的.so
./Configure android-arm64 -D__ANDROID_API__=30
执行完之后会在当前目录下生成一下两个文件
5、使用make 命令进行编译
make
等待一段时间,执行完之后,就会在当前目录下生成了想要的.so文件了,将生成的两个.so复制到android项目下arm64-v8a 下即可 6、要想继续生成其他平台的.so, 可以删掉第4、5步生成的文件,重复第4、5步即可 其中,armeabi 对应 android-arm , arm64-v8a 对应 android-arm64 , x86 对应 android-x86 ,x86_64 对应 android-x86_64 【注意】除了把生成对应平台的.so拷贝到Android项目之外,记得也得把当前目录下的include目录 一起拷贝过去用,include 里面是需要引入的头文件,而且需要注意的一定得编译完成之后再拷贝 ,拷贝没编译前的include文件,到时引入时会报错,因为有些文件是编译时候才生成的
|