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文件,實際上使用的時候可以將倆倆合併,形成可用於多種狀態下的通用靜態庫





發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章