本文转载至 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);

IOS-RSA加解密分享的更多相关文章

  1. iOS RSA加解密签名和验证

    转自:http://www.jianshu.com/p/81b0b54436b8 Pre:在公司负责了一个项目,需要用到iOS RSA验证签名的功能.后台给我的仅仅是一个公钥的字符串.经过起初的一段时 ...

  2. 全面解决.Net与Java互通时的RSA加解密问题,使用PEM格式的密钥文件

    作者: zyl910 一.缘由 RSA是一种常用的非对称加密算法.所以有时需要在不用编程语言中分别使用RSA的加密.解密.例如用Java做后台服务端,用C#开发桌面的客户端软件时. 由于 .Net.J ...

  3. 前后端java+vue 实现rsa 加解密与摘要签名算法

    RSA 加密.解密.签名.验签.摘要,前后端java+vue联调测试通过 直接上代码 // 注意:加密密文与签名都是唯一的,不会变化.// 注意:vue 端密钥都要带pem格式.java 不要带pem ...

  4. Rsa加解密Java、C#、php通用代码 密钥转换工具

    之前发了一篇"TripleDes的加解密Java.C#.php通用代码",后面又有项目用到了Rsa加解密,还是在不同系统之间进行交互,Rsa在不同语言的密钥格式不一样,所以过程中主 ...

  5. 【go语言】RSA加解密

    关于go语言的RSA加解密的介绍,这里有一篇文章,已经介绍的很完整了. 对应的go语言的加解密代码,参考git. 因为原文跨语言是跟php,我这里要跟c语言进行交互,所以,这里贴上c语言的例子. 参考 ...

  6. java RSA加解密以及用途

    在公司当前版本的中间件通信框架中,为了防止非授权第三方和到期客户端的连接,我们通过AES和RSA两种方式的加解密策略进行认证.对于非对称RSA加解密,因为其性能耗费较大,一般仅用于认证连接,不会用于每 ...

  7. openssl - rsa加解密例程

    原文链接: http://www.cnblogs.com/cswuyg/p/3187462.html openssl是可以很方便加密解密的库,可以使用它来对需要在网络中传输的数据加密.可以使用非对称加 ...

  8. RSA加解密工具类RSAUtils.java,实现公钥加密私钥解密和私钥解密公钥解密

    package com.geostar.gfstack.cas.util; import org.apache.commons.codec.binary.Base64; import javax.cr ...

  9. PHP RSA加解密详解(附代码)

    前言:RSA加密一般用在涉及到重要数据时所使用的加密算法,比如用户的账户密码传输,订单的相关数据传输等. 加密方式说明:公钥加密,私钥解密.也可以  私钥加密,公钥解密 一.RSA简介 RSA公钥加密 ...

  10. RSA算法原理——(3)RSA加解密过程及公式论证

    上期(RSA简介及基础数论知识)为大家介绍了:互质.欧拉函数.欧拉定理.模反元素 这四个数论的知识点,而这四个知识点是理解RSA加密算法的基石,忘了的同学可以快速的回顾一遍. 一.目前常见加密算法简介 ...

随机推荐

  1. 使用UE配置Python编程环境

    一直在使用UE来进行python编程,觉得在UE下进行python编程使用起来还是很方便地,现在特来总结一下: 1.首先是python环境搭建 (1)下载python2.7 https://www.p ...

  2. Java-动态规划-最多苹果数量的方法

    平面上有N*M个格子,每个格子中放着一定数量的苹果.你从左上角的格子开始,每一步只能向下走或是向右走,每次走到一个格子上就把格子里的苹果收集起来,这样下去,你最多能收集到多少个苹果. 思路: 解这个问 ...

  3. 【CF1027A】Palindromic Twist(模拟)

    题意:输入T组字符串,每个字符串都必须改变一次,每个字母改变的规则是变成相邻的字母,字母a只能变b,z只能变y,判断改变后的字符依旧是否能够变成回文串 n<=1e2 思路: #include&l ...

  4. 【POJ2104】K-th Number(主席树)

    题意:有n个数组成的序列,要求维护数据结构支持在线的下列两种操作: 1:单点修改,将第x个数修改成y 2:区间查询,询问从第x个数到第y个之间第K大的数 n<=100000,a[i]<=1 ...

  5. Linux 虚拟内存和物理内存的理解【转】

    转自:http://www.cnblogs.com/dyllove98/archive/2013/06/12/3132940.html 首先,让我们看下虚拟内存: 第一层理解 1.         每 ...

  6. 标准C程序设计七---45

    Linux应用             编程深入            语言编程 标准C程序设计七---经典C11程序设计    以下内容为阅读:    <标准C程序设计>(第7版) 作者 ...

  7. Javascript实现页面滚动时导航智能定位

    遇到的问题: 在做官网的时候,需要滚动定位的区块的图片不确定,无法确定用户浏览区域对应的模块导航 之前的解决方案是: 通过定位滚动条的位置来判断用户浏览区域对应的模块导航,这种方法的弊端是,区块的高度 ...

  8. Codeforces 946 C.String Transformation

    C. String Transformation   time limit per test 1 second memory limit per test 256 megabytes input st ...

  9. Nginx日志参数、location匹配规则、设置密码

    1.三个参数 a)$http_referer:记录此次请求是从哪个链接访问过来的: 是直接访问,还是从其他网站跳转过来的. 例如:访问:http://www.etiantian.com/,其页面首页是 ...

  10. java retry:详解

    发现 今天在探秘线程池原理知识点,在阅读JDK源码时遇到程序代码中出现如下代码,因为之前没有遇到过,于是特地记录下来并谷歌了一番,后面我自己做了一些简要的验证和分析. 验证 网上溜达一番发现,这ret ...