生成RSA用的证书

一、背景简介

由于公司最近要在项目上增加热修复的功能,也就是下载一段JS代码就能修复已经上线了的APP的bug.可是由于公司服务器还没有升级到HTTPS,所以在JS传输过程的的安全问题,就成了一个重大的问题,最终决定用RSA加密的方式来保证数据传输的安全性.

二、制作RSA用的证书步骤

  1. 环境:openssl,由于Mac自带openssl环境,所以不用安装,直接打开终端. [注:生成的证书文件都在当前路径下,可以切换路径到想要保存证书文件的文件夹下]
  2. 生成密钥1024是指定密钥的长度
    openssl genrsa -out private.pem 1024
    在终端输入cat private.pem可以查看pem文件,经过查看可以知道这是一个base64编码的二进制文件.
  3. 生成证书请求文件(公钥,组织信息,联系人信息等,这里会让你输入很多东西,只需依次输入即可,如果不知道输入什么可以随便填写)
    openssl req -new -key private.pem -out rsa.csr
  4. 给签名后的证书设置有效期
    openssl x509 -req -days 365 -in rsa.csr -signkey private.pem -out rsa.crt
  5. 将pem文件格式转换成der格式 [目的:pem是经过base64。系统加密的时候要使用base64解码后的二进制文件]
    openssl x509 -outform der -in rsa.crt -out rsa.der
    6.导出我们的私钥p12
    openssl pkcs12 -export -out p.p12 -inkey private.pem -in rsa.crt

7.der是公钥,p12是私钥,所在的路径是:当前终端的路径.

三、证书文件如何在项目中使用

把生成的derp12拖入到项目中

- (void)viewDidLoad {
    [super viewDidLoad];
    
    //RSA  非对称加密   加密 要加载公钥   解密要加载私钥
    CryptorTools *tools = [CryptorTools new];
    
    //加密
    //加载公钥
    NSString *path = [[NSBundle mainBundle] pathForResource:@"rsa.der" ofType:nil];
    [tools loadPublicKeyWithFilePath:path];
    
    NSString *cryptStr = [tools RSAEncryptString:@"王启镰"];
    NSLog(@"王启镰RSA加密后的字符串: %@",cryptStr);
    
    //解密
    //加载私钥
    path = [[NSBundle mainBundle] pathForResource:@"p.p12" ofType:nil];
    
    /** 这里的123456就是在导出p12的时候你输入的密码 **/
    [tools loadPrivateKey:path password:@"123456"];
    NSString *decryptStr = [tools RSADecryptString:cryptStr];
    NSLog(@"解密后的字符串: %@",decryptStr);
}

四、知识补充

非对称加密算法RSA

  • 使用 公钥 加密, 使用 私钥 解密
  • 使用 私钥 加密, 使用 公钥 解密
  • 更安全[https就是用的RSA加密算法]
  • 适合小数据加密
  • 缺点: 加密速度慢

使用场景
一般使用RSA加密对称加密的密钥

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 证书的概念在iOS中使用RSA加密解密,需要用到.der和.p12后缀格式的文件,其中.der格式的文件存放的是公...
    像小强一样活着阅读 8,006评论 6 9
  • openssl的证书格式转换 证书转换 PKCS 全称是 Public-Key Cryptography Stan...
    五大RobertWu伍洋阅读 14,116评论 1 4
  • 我可不可以提出这样的质疑:“是我看见了世界,还是我遇见了这个世界”
    清澈见底07阅读 1,301评论 0 0
  • 梦里的歌谣 响彻云霄 那自在翱翔的小鸟 飞到有你的地方 是我为你的祷告 寺里的佛音 虔诚祈祷 那翠玉雕琢的菩提 在...
    君惜竹阅读 2,481评论 2 2
  • 高考报志愿,一心要离开熟悉的一切,去远方寻找只属于我的新鲜世界。我不知道是不是每个女生都有前世寄留在江南水乡...
    虫二Y阅读 1,873评论 0 0

友情链接更多精彩内容