ios开发 Rsa签名 base64转码

因为公司要求做了一个加密  网上的资料少有可用的  于是我看到了一位大神的曙光 但是未介绍使用方法  

然后另一位大神给予了使用方法 但是没有把库给出来   我整理了一下  希望大家看的有些启发

证书生成

  • 生成模长为1024bit的私钥
    openssl genrsa -out private_key.pem 1024
  • 生成certification require file
    openssl req -new -key private_key.pem -out rsaCertReq.csr
  • 生成certification 并指定过期时间
    openssl x509 -req -days 3650 -in rsaCertReq.csr -signkey private_key.pem -out rsaCert.crt
  • 生成公钥供iOS使用
    openssl x509 -outform der -in rsaCert.crt -out public_key.der
  • 生成私钥供iOS使用 这边会让你输入密码,后期用到在生成secKeyRef的时候会用到这个密码
    openssl pkcs12 -export -out private_key.p12 -inkey private_key.pem -in rsaCert.crt
  • 生成pem结尾的公钥供Java使用
    openssl rsa -in private_key.pem -out rsa_public_key.pem -pubout
  • 生成pem结尾的私钥供Java使用openssl pkcs8 -topk8 -in private_key.pem -out pkcs8_private_key.pem -nocrypt
这个是作者大大

 

附上库的地址https://github.com/PanXianyue/XYCryption
 
然后我现在开始教大家使用
 
XYRSACryption *mxRsa = [[XYRSACryption alloc]init]; //初始化
    NSString *p12Path = [[NSBundle bundleForClass:[self class]] pathForResource:@"private_key" ofType:@"p12"];//找到私钥
    [mxRsa loadPrivateKeyFromFile:p12Path password:@"xxxxx"];//输入你的私钥密码
    
    
    NSString *enStr = [NSString stringWithFormat:@"%@",加密参数];
    NSData *data =[enStr dataUsingEncoding:NSUTF8StringEncoding];//转化格式
    NSData *signedData = [mxRsa sha256WithRSA:data];//签名
    NSString * sin_key = [GTMBase64 stringByEncodingData:signedData];//加密

注 :rsa签名 要与后台的rsa一致  例如你是sha256  后台也要用同样的    

废话不多说了  基本上这么做就没什么问题了  作者已经把库封装的很好啦直接用就行   感谢乐于奉献的人  

posted @ 2016-06-23 10:44  刘明鑫l  阅读(968)  评论(0编辑  收藏  举报