RSA加密(3.0)

在上面RSA加密(2.0)中我们讲到了第一种RSA加密方式,但是这种加密方式适用范围比较窄,对加密的数据有长度限制,下面我们讲一下第二种RSA加密方式


第二种需要openssl静态库,所以我们首要做的事情就是制作静态库

分别需要生成适用于armv7,armv7s,arm64和i386情况的静态库,并且合并各个静态库,才能适用于各种机型(包括模拟器)

1.去https://openssl.org/source/下载相应的库


2.解压库文件,我的库文件未解压之前叫openssl-1.0.2d.tar,加压完为openssl-1.0.2d


3.根据路径./openssl-1.0.2d/crypto/ui/找到ui_openssl.c文件。

static volatile sig_atomic_t intr_signal;

改为static volatile int intr_signal;

4.在openssl-1.0.2d文件下面创建armv7,并在终端执行

./configure BSD-generic32 --openssldir=../openssl-1.0.2d/armv7(PS:在执行以上语句的时候,先要转到openssl-1.0.2d路径下)

其中“=”后面为armv7文件的路径,根据个人情况设置,并回车


5.openssl-1.0.2d下找到Makefile


找到CC= gcc

并且将gcc改为/Applications/Xcode.app/Contents/Developer/usr/bin/gcc -arch armv7

其中/Applications/Xcode.app/Contents/Developer/usr/bin/gccgcc的路径。如果在/Applications/Xcode.app/Contents/Developer/usr/bin/能找到gcc,则你可以这样设置,如果不是,请根据个人情况设置


在下面一行中

CFlag= 后面添加-isysroot /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS9.0.sdk/

即CFlag= -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS9.0.sdk/

其中 /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/下能找到iPhoneOS9.0.sdk,则说明可以这样添加,如果不是,请根据个人情况设置


6保存以上文件,并且在终端上执行make

如果有错误

clang: warning: argument unused during compilation: '-pthread'

making all in tools...

make[1]: Nothing to be done for `all'.

可以忽略


7.执行make install,则可以在armv7文件中找到lib中找到俩个.a文件,在armv7中还可以找到include文件,以上所说的文件则可以保存起来,即是有用的文件


以上所说是armv7格式的静态库文件,arm64,armv7s格式的静态库生成可重复3~7步,同时将所有的armv7替换为arm64或者armv7s。但是每次生成静态库都最好用最新解压的openssl-1.0.2d,避免造成不必要的错误


关于i386x86_64静态库的生成与上面所说的基本一致,但除了注意替换armv7之外,CFlag=后面内容替换为-isysroot /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator9.0.sdk/


8.合并静态库

以上所说最后应该会生成多个libssl.alibcrypto.a文件,实际上使用的时候可以将俩俩合并,形成可用于多种状态下的通用静态库





评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值