IOS-RSA加解密分享
本文转载至 http://www.cocoachina.com/bbs/read.php?tid=235527
不能只索取,不贡献。。。
此项目客户端不用openssl生成de,直接使用本库生成Publickey及Privatekey。
程序是由https://github.com/kuapay/iOS-Certificate--Key--and-Trust-Sample-Project项目修改而来,此项目加密时长度超过100多就不能加密(已修改兼容很多很多字节)!!解密由于项目不需要,没做分片解压,只支持100多字节(项目急,没时间改),大伙可以修改此方法!写完分享一下
- (NSString *)decrypt:(NSString *)cipherText
key:(NSString *)key
error:(NSError *)error!!
适用环境:
1、ios应用程序自动生成公钥,私钥,并保存下来。以后都是沙盒提取
2、服务器公钥通过der格式生成SeckeyRef格式,用于与服务器传输。
3、加密之前已经base64了,解密之后也已经base64.
加密:
RSACryptor *r = [RSACryptor shareInstance];
long randomData = random();
NSString *pubStr = [NSString stringWithFormat:@"%@",@“12345”];
NSLog(@"RSAExchange %d",[str length]);
NSData *strData = [pubStr dataUsingEncoding:NSUTF8StringEncoding];
NSString *EncryptStr = [r RSA_EncryptUsingServerPublicKeyWithData:strData];
解密:
NSString *RSA_String = @“xxxxxx”;
RSACryptor *r = [RSACryptor shareInstance];
NSData *base64FromString = [RSA_String dataUsingEncoding:NSUTF8StringEncoding];
NSString *RSA_DecryptData = [r RSA_DecryptUsingPrivateKeyWithData:base64FromString];
NSLog(@"RSA_DecryptData %@",RSA_DecryptData);
最新文章
- Spring学习记录(十二)---AOP理解和基于注解配置
- ExtJS 中类的选项 - config
- jQuery1.9之后使用on()绑定 动态生成元素的 事件无效
- 一个可以设置所有子控件是否可以点击的Layout的实现
- ASP.NET MVC 基于角色的权限控制系统的示例教程
- Android之Handler
- 使用原生JavaScript
- 学了这四招,你在Linux上观看Netflix视频不发愁
- 最牛X的编码套路
- mysql 时区 , 夏令时,冬令时
- html5 web worker
- tomact配置域名和端口直接访问网站
- Nodejs-express 4.0框架 简单介绍
- AsyncTask还要知道的一些知识
- mysql having和where的区别
- [Swift]错误提示:Method does not override any method from its superclass
- Linux网站运维工程师基础大纲
- python-day79--知识回顾
- OWASP TOP 10 2017中文译文
- android 开发 实现一个app的引导查看页面(使用ViewPager组件)
热门文章
- 解决v-for产生的警告的办法
- Springboot 版本+ jdk 版本 + Maven 版本的匹配
- poj 1981 Circle and Points
- AC日记——Milking Grid poj 2185
- 关于Java的TreeMap
- HDU 6206 Apple
- inotify+rsync的初步配置
- Java文件夹操作,判断多级路径是否存在,不存在就创建(包括windows和linux下的路径字符分析),兼容Windows和Linux
- 【报错】spring整合activeMQ,pom.xml文件缺架包,启动报错:Caused by: java.lang.ClassNotFoundException: org.apache.xbean.spring.context.v2.XBeanNamespaceHandler
- activiti自己定义流程之整合(二):使用angular js整合ueditor创建表单