Openssl3.0 Android平台编译教程

  • Post author:
  • Post category:其他




【前言】

Android要想实现

RSA/AES

之类的加密,最简便的方式是直接使用Android提供的Java层api,但是使用Java层提供的api去加密,别人很容易通过反编译看到你的加密逻辑,然后直接模拟你的加密逻辑去刷接口或者抓包时候直接解密即可,安全系数比较低;要想提高被别人反编译看到加密逻辑的门槛,需要把相关加密逻辑代码放到C层去实现,但是要是自己去实现RSA/AES加密逻辑,那是很浪费时间而且完全没必要的事情,可以借助

Openssl

提供的

crypto

这个库去实现加密或者md5

网上的openssl编译教程大部分都是比较旧的或者是不太详细,故而有此教程详细记录openssl的编译过程



一、环境要求

1、

Linux系统

,可以在

VMware

中装

ubuntu linux系统


2、下载

Linux版 NDK

,解压



二、下载

Openssl

源码

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文件,到时引入时会报错,因为有些文件是编译时候才生成的



版权声明:本文为qq_43278826原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。