【前言】

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-x86x86_64对应 android-x86_64
【注意】除了把生成对应平台的.so拷贝到Android项目之外,记得也得把当前目录下的include目录一起拷贝过去用,include里面是需要引入的头文件,而且需要注意的一定得编译完成之后再拷贝,拷贝没编译前的include文件,到时引入时会报错,因为有些文件是编译时候才生成的

Openssl3.0 Android平台编译教程相关推荐

  1. ogre android 编译,Ogre3d Android平台编译教程

    上一篇我们讲了Ogre3d 在 Window平台的编译流程方法 这一篇我们介绍 Ogre3d 编译到Android 平台的方法.可以和官方英文教程对照学习. 转载自博客 http://blog.csd ...

  2. ffplay android 编译,ffmpeg android 平台编译

    ? ? ?ffmpeg 在移动平台上应用十分广泛,其在音视频编解码,封装多媒体文件格式,rtsp http rtmp协议相关的音视频推流拉流具有强大的可用性.这里将自己平时为Android平台编译ff ...

  3. SeetaFace2 Android 平台编译

    SeetaFace2 Android 平台编译 欢迎入群交流 开源地址:https://github.com/seetafaceengine/SeetaFace2 SeetaFace2 人脸识别引擎包 ...

  4. Android反编译教程

    转载请注明文章出住http://blog.csdn.net/wolaiye320/article/details/51736139 在网上搜索Android反编译教程,搜出来的文章要么是抄袭的,要么是 ...

  5. WIN10 x64搭建OLLVM4.0 android NDK 编译环境跨坑指南

    本文参考大量相关博客,甄选出有用的文章,帮助大家远离陷阱,节省时间. 目录 平台说明 环境准备 添加String混淆 集成到ndk编译工具链 模式介绍与使用方法 编译错误 Cannot open /d ...

  6. 1.0 Android平台概述

    Android,可能在iphone引入中国之前,对很多人还是相当陌生的.套用一句古话,"既生瑜,何生亮".那么已经有了iphone,为什么又非得搞一个Android呢.但是假如你对 ...

  7. librtmp开源库与android平台编译记录

    一.编写目的 为了记录编译librtmp开源库过程遇到的问题,帮助后来人提供参考,希望本文能为大家提供参考. 二.简介(官方介绍) The Real-Time Messaging Protocol ( ...

  8. Webrtc入门——基于阿里云ubuntu 最新webrtc Android平台编译详细说明

    折腾了好多天,终于将webrtc Android平台的demo编译出来了,发现即使完全按照webrtc官网的编译指南,还是会碰到各种问题.而网上又没有更全面的说明,最后是通过查看webrtc 批处理脚 ...

  9. 新Android反编译教程

    今天百度搜索"Android反编译"搜索出来的结果大多数都是比较传统的教程.刚接触反编译的时候,我也是从这些教程慢慢学起的.在后来的学习过程中,我接触到比较方便操作的Android ...

最新文章

  1. 小程序订单点击不同页面_小程序跳转页面参数丢失
  2. Java中异常的分类
  3. c++11中智能指针的原理,使用,实现
  4. 克隆可序列化和不可序列化的Java对象
  5. c语言实验5上机刘若慧2017年,《《 C语言程序设计案例教程》》.ppt
  6. ssm整合 报错org.apache.ibatis.binding.BindingException: Invalid bound statement (not found):xxx
  7. IDEA详细配置与使用
  8. 手把手教你写网站:Python WEB开发技术实战
  9. .net core 在jenkins上自动构建 运行xunit ,生成测试报告
  10. ORACLE RAC 12C(12.1.0.2)数据库软件安装步骤
  11. Windows Mobile 触摸屏(Touch Panel)截获
  12. Java socket编程 CPU占用率高的问题解决
  13. android的终端模拟器,安卓开发者必备的 5 款 App:终端模拟器、颜色萃取、移动 IDE 等...
  14. Arcgis更换布局模板_PPT模板到底怎么用呢?
  15. 名词用作动词举例_英语中名词做动词用的55个例句
  16. python里str什么意思_python中str是什么意思
  17. leyou商城day10 MQ介绍及详情静态页
  18. 阿里二面:RocketMQ 集群 Broker 挂了,会造成什么影响?
  19. CIMPLICITY 历史数据存储及趋势显示示例
  20. 我们把AR产业链大卸128块,然后发现消费级AR还很远

热门文章

  1. 七、初识python-str内置函数、列表与列表函数(课时3)
  2. 安卓手机怎么关闭服务器信息,安卓手机服务器信息怎么关闭
  3. css 超出文本 overflow 变成点点点....
  4. 神奇英语语法系列(五)——时态
  5. 编程将是下一个蓝领工作
  6. 城市三级联动的json文件
  7. Centos 安装和卸载docker
  8. 坚果云和亿方云相比较哪个好?
  9. AIX系统加固,一个空行引发的教训(3004-302错误)
  10. vue3项目实战中的接口调用方法(二)fetch用法 (前后端交互) get请求/post请求/put请求/delete请求