RSA加密解密(直接使用openssl生成的公私钥)

期初做加密的时候就是想要直接使用openssl生成的公钥和私钥,捣鼓了好久才弄出来,昨天将文件的方式做出来以后反复比较加密过程。最终了解到,解密的过程中需要的私钥是需要一个“头”的。而这个所谓的“头”其实就是我们生成的pem文件的一些配置项。
在上一篇文章RSA加密解密(读取文件) 中知道了通过openssl在终端生成证书的时候需要填写,countr、Provice、organizer等配置项的。

而且网上也是有一些demo讲解rsa加密解密的,而且使用起来还是不错的。例如RSAdemo 这个里面也带有自己的公私钥,但是当我们将自己生成的pem文件中的公私钥替换掉宏定义的时候就会出现加密通过,但是解密为nil的情况。

如果你仔细研究你会发现你的私钥长度和demo中的私钥长度是不一样的。原来我们的私钥是不同的。那么既然公钥可以就说明公钥确实是从pem文件直接取出来使用的。由这样的逻辑一般都会想当然的以为,私钥同样也是直接取pem文件,这样就错了。因为我们pem文件的私钥和demo中的是不同的,上面已经提到,起码长度都不一样。

那么怎么得到相同格式的私钥呢?或者说demo中的私钥是什么格式的呢?下面就说一下。其实demo中用的不是pem文件中的私钥,而是经过pem重新合成的新文件,经过PKCS#8编码的新文件。而pkcs中的私钥才是我们需要的私钥,但是我们用文本是打不开的,只能通过代码读取文件的内容了。这里就不详述操作步骤了,因为我们还有另一种方式,比合成文件并读取内容要方便的多。

其实说这么多就是为了获得一个有效的私钥,那么能不能经过代码处理将我们的私钥变成合法的呢?答案当然是可以的。而且代码中也有这样的操作。

在代码中有这样一个方法,+ (NSData )stripPrivateKeyHeader:(NSData )d_key;这个方法就是处理私钥的头部配置项的代码。如果我们将这个注释掉就会发现我们的代码竟然成功了。看到这里大家也就会明白,我在RSA加密解密(读取文件) 中生成的各个文件的作用了。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值