iOS 使用 RSA 加密, 只需要公钥

在 iOS 上, 加密被和安全性进行了强绑定, 所以, 你不能只做加密(至少公开文档不告诉你如何只做加密). 但事实上, 很多时候我们加密, 并不是要求 100% 的安全, 只是希望能得到加密本身所带来的安全, 既不考虑数据重放, 也不考虑第三者攻击, 也不考虑身份伪装. 我们仅仅是需要 - 加密, RSA 非对称加密. 物理上的和系统上的安全我们会想尽全部办法来解决, 不需要加密模块来管.

但是, 苹果不公开允许这样做, 所以 iOS 上的 Cocoa API 就没有简单的这样的加密函数:

ret = rsa_encrypt(src_data, public_key);

例如, 苹果的 SecKeyEncrypt() 函数需要 .der 证书, 而公钥只是证书的一部分. 所以, 如果你只有公钥, 你是不能直接使用这个函数的. 幸运的是, iOS 可以使用自己产生的公钥, 所以, 你要做的是把你的公钥伪装成是 iOS 产生的.

这篇文章, 介绍了如何伪装公钥. 伪装完后, 你就可以直接使用 SecKeyEncrypt() 函数来进行 RSA 公钥加密了.

完整的代码我放在 GitHub 上了.

转自http://www.ideawu.net/blog/archives/855.html

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值