iOS开发探索-RSA加解密

作者: 零距离仰望星空 | 来源:发表于2016-02-18 11:19 被阅读2810次

    RSA算法简介(RSA算法原理)

    RSA加解密需要两个钥匙,一个公钥一个私钥。

    1.使用publicKey可以对数据进行加密

    2.使用privateKey才能对数据进行解密

    单方向传输

    用公钥加密的数据,只有私钥能解开(可用于加密);

    同时,使用私钥加密的数据,只有公钥能解开(签名)。但是速度很慢(比私钥加密慢100到1000倍),

    公钥的主要算法有RSA,还包括Blowfish,Diffie-Helman等

    公钥与私钥

    1.权威数字认证机构(CA)给所有通信主体(个人或组织)颁发公钥和私钥,彼此配对,分别唯一。

    2.私钥好比数字指纹,同时具有解密和加密功能。个人保管,不公开。

    3.公钥好比安全性极高的挂号信箱地址,公开。

    公私钥加解密举例

    设若甲有一份需保密的数字商业合同发给乙签署。经过如下步骤:

    1. 甲用乙的公钥对合同加密。

    2. 密文从甲发送到乙。

    3. 乙收到密文,并用自己的私钥对其解密。

    4. 解密正确,经阅读,乙用自己的私钥对合同进行签署。

    5. 乙用甲的公钥对已经签署的合同进行加密。

    6. 乙将密文发给甲。

    7. 甲用自己的私钥将已签署合同解密。

    8. 解密正确,确认签署。

    公私钥加解密说明

    从以上步骤,我们知道:

    1. 用公钥加密的密文能且只能用与其唯一配对的私钥才能解开。

    2. 如果某份密文被解开,那么肯定是密文的目标信息主体解开的。

    3. 私钥因其唯一标识所有者的属性,被用于数字签名,具有法律效力。

    IOS对Security.framework的封装,实现RSA非对称加密解密。可获取公钥和私钥,可对数据进行公钥和私钥的加解密。 这种方式需要对密匙对进行处理, 根据public key生成证书, 通过private key生成p12格式的密匙.

    iOS中使用RSA加密解密简单实现

    1.在开发工程中可以添加RSA加解密库(地址https://github.com/524429264/Objective-C-RSA )

    2.在线生成RSA密钥对(http://web.chacuo.net/netrsakeypair )

    RSA密钥对

    3.导入#import "RSA.h"头文件以及添加第二步生成的公私钥,调用对应的加解密方法

    实际调用

    4.以下为加解密后的结果

    加解密结果

    在此感谢各位读者的来访,您的关注是我写作分享的最大动力。

    http://songshuhui.net/archives/84941

    相关文章

      网友评论

      本文标题:iOS开发探索-RSA加解密

      本文链接:https://www.haomeiwen.com/subject/kypmkttx.html