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/gcc为gcc的路径。如果在/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,避免造成不必要的错误
关于i386与x86_64静态库的生成与上面所说的基本一致,但除了注意替换armv7之外,CFlag=后面内容替换为-isysroot /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator9.0.sdk/
8.合并静态库
以上所说最后应该会生成多个libssl.a和libcrypto.a文件,实际上使用的时候可以将俩俩合并,形成可用于多种状态下的通用静态库
RSA加密(3.0)相关推荐
- MacOS下使用C语言基于openssl库进行RSA加密解密
MacOS下使用C语言基于openssl库进行RSA加密解密 1 安装openssl并生成密钥 首先当然要安装openssl(这里记得看一下安装路径,应该是/usr/local/Cellar/open ...
- 0宽字符加密_「今日学习」VUE使用RSA加密技术
1 Vue端搭建 首先我们还是先安装必要的模块哈: npm install jsencrypt --save 接下来我们需要在main.js的配置文件中配置上全局变量哈: import JSEncry ...
- iOS使用Security.framework进行RSA 加密解密签名和验证签名
iOS 上 Security.framework为我们提供了安全方面相关的api: Security框架提供的RSA在iOS上使用的一些小结 支持的RSA keySize 大小有:512,768,10 ...
- RSA加密传输代码示例
RSA加密传输代码示例 涉及敏感数据的传输,双方最好约定使用加密解密.那RSA非对称加密就大有作为了. 服务端可以保留自己的私钥,发给客户端对应的公钥.这样就可以互相加解密了.php中rsa加解密实现 ...
- 一篇搞定RSA加密与SHA签名|与Java完全同步
看到这篇文章的同学可幸福了,当时在做RSA加密与签名的时候网上的资料简直不要太老,做完后实在是忍受不下去了,这篇文章我会详细讲解iOS如何实现RSA加密与签名,并且与Java完全同步,这是我的第二篇博 ...
- python3 rsa加密_【Python】Python3 实现 JS 中 RSA 加密的 NoPadding 模式
前因后果之哗啦啦废话连篇: 这几天本人在 Python 做某网站登陆的时候,发现其登陆时用户名和密码被加密了 F12 仔细看了一下,发现是调用了一个 js 的 rsa 加密库,页面 dom 中有 rs ...
- obj c和java_PKCS1-padding / RSA加密ios objc和java之间的区别
我正在为ios和Android开发应用程序.我对加密任务相对来说比较陌生,在过去的3天里,由于无法运行RSA加密,所以我一直在抨击我的头部. 两个客户端都从java服务器接收公钥.在Android中我 ...
- iOS安全之RSA加密/生成公钥、秘钥 pem文件
在iOS中使用RSA加密解密,需要用到.der和.p12后缀格式的文件,其中.der格式的文件存放的是公钥(Public key)用于加密,.p12格式的文件存放的是私钥(Private key)用于 ...
- python判断网页密码加密方式_python实现网页登录时的rsa加密流程
对某些网站的登录包进行抓包时发现,客户端对用户名进行了加密,然后传给服务器进行校验. 使用chrome调试功能断点调试,发现网站用javascript对用户名做了rsa加密. 为了实现网站的自动登录, ...
最新文章
- php xml 互相转换
- 使用spring-rabbit测试RabbitMQ消息确认(发送确认,接收确认)
- 牛客网【每日一题】4月13号 Accumulation Degree
- Html5 学习系列(二)HTML5新增结构标签
- JQuery Dialog(转)
- windows环境下neo4j下载安装配置
- 一些个人感觉很不错的特效
- GDB 的几个用法(until, finish, tui)
- 2019秋季10月新番动漫推荐
- css3+html5——机器猫哆啦A梦+手、脚、头动起来!
- 梦幻西游手游微信号登陆不上服务器,梦幻西游手游为什么进不去 进不去登陆不上解决方法...
- leanote 蚂蚁云笔记 源码编译
- 设计模式之美总结(创建型篇)
- 使用MySQL管理工具-SQLyog 9.63报错号码2058,超详细解析
- 素数的平方阶群必为Abel群
- ITE EC代码解析1
- springboot,tkmybatis的逆向工程
- 可视化GC日志分析工具
- 串口服务器中文使用文档,MOXA 串口服务器中文使用文档.doc
- linux识别require语法,Scala 的参数检查与断言: require, assert, assume 和 ensuring