在Android中使用Cryptopp
Cryptopp是一个C++编写的加密库,支持多种加密。常见的MD5、SHA、RSA、DES等等。因为自己在学习JNI,但是单纯的学习C/C++学不进去,所以编译一个加密库来强化学习。
本次学习主要目标
成功编译Cryptopp并且在Android中使用该库进行基本加密。
对于程序员来说学习一种语言或者框架最好的就是去官网。下面说明下Cryptopp官网的几个常用的地址
咱们就按着这个来学习在Android中使用Cryptopp来加密
编译Cryptopp
编译Cryptopp首先自己配置个linux系统,安装个虚拟机就ok了。之后我们创建一个文件夹用户下面的cryptopp的编译
cd ~/
mkdir cryptopp
去官网下载源代码,我们选择8.2.0,下载之后将文件解压到cryptopp目录下面。当然你不一定可以下载下来,那就去我的gitee 克隆吧
接下里我们按着官方教程配置编译需要的环境。编译器这些一般linxu都会有,只需要配置Android环境。
一般我们做Android 开发,我们可以通过Android Studio的SDK Manager
来下载NDK,当然你也可以官网直接下载NDK。下载路径一般在SDK路径下有个ndk目录。
配置环境变量
编译Cryptopp两个比较重要的变量就是ANDROID_SDK_ROOT
和ANDROID_NDK_ROOT
。
ANDROID_SDK_ROOT
就是我们SDK路径,而ANDROID_NDK_ROOT
是在ANDROID_SDK_ROOT/ndk/版本号/
因此我们打开/ect/profile配置如下
if [ -d /opt/android-ndk ]; then
export ANDROID_NDK_ROOT=/opt/android-ndk //你ndk路径
fi
if [ -d /opt/android-sdk ]; then
export ANDROID_SDK_ROOT=/opt/android-sdk //你sdk路径
export ANDROID_HOME=/opt/android-sdk //你sdk路径
fi
if [ -e "/usr/libexec/java_home" ]; then
export JAVA_HOME=$(/usr/libexec/java_home)
elif [ -d "/usr/lib/jvm/java-8-openjdk-amd64" ]; then
export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64
fi
打开~/.bash_profile配置
if [ -d "$ANDROID_NDK_ROOT" ]; then
export PATH="$PATH:$ANDROID_NDK_ROOT"
fi
if [ -d "$ANDROID_SDK_ROOT/tools/bin" ]; then
export PATH="$PATH:$ANDROID_SDK_ROOT/tools/bin"
fi
if [ -d "$ANDROID_SDK_RO