zoukankan      html  css  js  c++  java
  • 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  后台也要用同样的    

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

  • 相关阅读:
    CUDA实例练习(十二):矩阵相乘
    CUDA实例练习(十一):零拷贝内存
    CUDA实例练习(十):多个cuda流
    CUDA实例练习(九):页锁定主机内存
    CUDA实例练习(八):原子操作(直方图)
    算法实例(三):快速排序
    算法实例(二):冒泡排序
    算法实例(一):简单桶排序
    CUDA实例练习(七):点积运算
    CUDA实例练习(六):矢量求和
  • 原文地址:https://www.cnblogs.com/liumingxin123/p/5609838.html
Copyright © 2011-2022 走看看