本文转载至 http://www.cocoachina.com/bbs/read.php?tid=235527

 
 
搜索了很多资料,没找到合适的RSA方法,很多人在问这问题,解决了的同志也不分享,故由我来分享吧,好的给个赞!!不好的勿喷,大伙修改完弄上来就好了。。。
不能只索取,不贡献。。。
此项目客户端不用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);

最新文章

  1. Spring学习记录(十二)---AOP理解和基于注解配置
  2. ExtJS 中类的选项 - config
  3. jQuery1.9之后使用on()绑定 动态生成元素的 事件无效
  4. 一个可以设置所有子控件是否可以点击的Layout的实现
  5. ASP.NET MVC 基于角色的权限控制系统的示例教程
  6. Android之Handler
  7. 使用原生JavaScript
  8. 学了这四招,你在Linux上观看Netflix视频不发愁
  9. 最牛X的编码套路
  10. mysql 时区 , 夏令时,冬令时
  11. html5 web worker
  12. tomact配置域名和端口直接访问网站
  13. Nodejs-express 4.0框架 简单介绍
  14. AsyncTask还要知道的一些知识
  15. mysql having和where的区别
  16. [Swift]错误提示:Method does not override any method from its superclass
  17. Linux网站运维工程师基础大纲
  18. python-day79--知识回顾
  19. OWASP TOP 10 2017中文译文
  20. android 开发 实现一个app的引导查看页面(使用ViewPager组件)

热门文章

  1. 解决v-for产生的警告的办法
  2. Springboot 版本+ jdk 版本 + Maven 版本的匹配
  3. poj 1981 Circle and Points
  4. AC日记——Milking Grid poj 2185
  5. 关于Java的TreeMap
  6. HDU 6206 Apple
  7. inotify+rsync的初步配置
  8. Java文件夹操作,判断多级路径是否存在,不存在就创建(包括windows和linux下的路径字符分析),兼容Windows和Linux
  9. 【报错】spring整合activeMQ,pom.xml文件缺架包,启动报错:Caused by: java.lang.ClassNotFoundException: org.apache.xbean.spring.context.v2.XBeanNamespaceHandler
  10. activiti自己定义流程之整合(二):使用angular js整合ueditor创建表单