赞
踩
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文件,到时引入时会报错,因为有些文件是编译时候才生成的
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。