IOS-RSA加解密分享

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

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。