澳门新葡亰娱乐网站-www.142net-欢迎您

澳门新葡亰娱乐网站是因为你还没有找到一条正确的致富之路,www.142net是将所有的游戏都汇集在一起的官方平台,因为澳门新葡亰娱乐网站这个网站当中有着大量的游戏攻略,托IP定位技术,传达终端直接到达的精准传播方式。

iOS非对称加密RSA实现,RSA非对称加密

来源:http://www.bhtsgq.com 作者:计算机知识 人气:152 发布时间:2019-06-01
摘要:java 中君越SA的措施贯彻非对称加密的实例 前言: iOS非对称加密RSA实现,RSA非对称加密。大家上课了低级的相反相成加密,小编想信大家也对加密以及为啥要加密有了自然的接头,但是

java 中君越SA的措施贯彻非对称加密的实例

前言:

iOS非对称加密RSA实现,RSA非对称加密。大家上课了低级的相反相成加密,小编想信大家也对加密以及为啥要加密有了自然的接头,但是对称加密有3个十分的大的弱项正是某人假若拦截到请求之后得到密文又对你的api包举办反编写翻译获得了加密秘钥和算法,你这几个密文和公开也就么什么分裂了,为了更加好的消除此类难点我们巨大的前辈们又提出了一种新的定义悍马H二SA非对称加密。

LacrosseSA非对称加密

SportageSA非对称加密, 适用于Java和iOS

选用场景:用户登陆时对登陆密码实行加密

公钥,私钥爆发,1共和四个数有关:

大切诺基SA通俗通晓:

EscortSA非对称加密介绍:

  • ###### EscortSA加密是一种非对称加密方法(以下内容摘自--百度百科)

1.A要向B发送新闻,A和B都要发生一对用于加密和平化解密的公钥和私钥。
2.A的私钥保密,A的公钥告诉B;B的私钥保密,B的公钥告诉A。
三.A要给B发送新闻时,A用B的公钥加密音讯,因为A知道B的公钥。
4.A将那一个音信发给B(已经用B的公钥加密新闻)。
五.B摄取这么些新闻后,B用本人的私钥解密A的新闻。其余具备接收这么些报文的人都爱莫能助解密,因为只有B才有B的私钥。

实际上本人首先次看上边这段内容以及试图去驾驭福特ExplorerSA非对称加密的时候即是想骂人的,后来自个儿忍住了,多读了两遍不行小编又抄了一次武术不负有心人终于是明亮了。其余都是废话,作者来一步一步给我们达成。

起步终端, 成立证书

// create private_key.pem

openssl genrsa -out private_key.pem 1024

// create rsaCertReq.csr,这一步供给输入一些音讯(包罗国家、省、市等等),依据提醒操作就能够

openssl req -new -key private_key.pem -out rsaCertReq.csr

// create rsaCert.crt,个中3650是限时(天),可轻松写

openssl x509 -req -days 3650 -in rsaCertReq.csr -signkey private_key.pem -out rsaCert.crt

// create public_key.der, For iOS

openssl x509 -outform der -in rsaCert.crt -out public_key.der

// create private_key.p12, For iOS, 这一步必要安装密码,请记住

openssl pkcs12 -export -out private_key.p12 -inkey private_key.pem -in rsaCert.crt

// create rsa_public_key.pem, For Java

openssl rsa -in private_key.pem -out rsa_public_key.pem -pubout

// Create pkcs8_private_key.pem, For Java

openssl pkcs8 -topk8 -in private_key.pem -out pkcs8_private_key.pem -nocrypt

在极端试行上面的通令后,会扭转八个文件。其中public_key.derprivate_key.p12那对国有钥给iOS使用,rsa_public_key.pempkcs8_private_key.pemJAVA使用。

它们的源都来自3个私钥:private_key.pem, 所以iOS端加密的数额,能够被JAVA端解密; 同样JAVA端加密的多少iOS端也能解密。

p, q , n , φ(n) , e , d

下边详细说下这一个数的意义,与发生步骤


壹. 随便发生七个不等于的质数 p , q

61 和 53

**2. n 为p q 的乘积 **

n = 61*53 = 3233

*三. 图谋欧拉函数 φ(n) = (p-一)(q-1) **

  φ(n) = 60*52 = 3210

四. 随机选用3个整数 e, 条件是一< e < φ(n),且e与φ(n) 互质 (实际上,日常挑选655叁7)

选择 17, e=17

** 伍. 计算 e 对于φ(n) 的模反成分 d**

    ed ≡ 1 (mod φ(n))
    试子可以推导为:
    ed - 1 = kφ(n)  >>>  ed   φ(n)k = 1 

    >>  e 和 φ(n) 都是知道的 >> 17d   3210k = 1
    根据 ** 扩展欧几里得算法 ** 知道一定有整数解 d 和 k 
    有(2753,-15),d= 2753

**陆. 将n和e封装成公钥,n和d封装成私钥 **

各自组成:
私钥  n = 3323 和 d = 2753
公钥  n = 3323 和 e =17

那五个数字之中,公钥用到了三个(n和e),别的多少个数字都是不领会的。在那之中最要害的是d,因为n和d组成了私钥,一旦d泄漏,就等于私钥泄漏。

那么,有无恐怕在已知n和e的图景下,推导出d?

    (1)ed ≡ 1 (mod φ(n))。 只有知道e和φ(n),才能算出d。
    (2)φ(n)=(p-1)(q-1)。只有知道p和q,才能算出φ(n)。
    (3)n = pq。只有将n因数分解,才能算出p和q。

** 能够生产,唯有将 n 质因数分解算出 p和q,技能博得d , 破解私钥 **

可是大整数的因数分解是丰裕困难的。到近期,除了暴力破解没有何样非常实用的秘诀。所以若是,你的n 获得十分大,密钥的尺寸丰盛长,就不能够破解了。
事实上接纳中,密钥的长度一般是10二二人,安全须要高的情事是2046位(最近生人的能表明的最大整数十贰^76八),所以10二四是一定安全的。


你倘使去想:既然是加密,那明确是不期待外人明白小编的信息,所以唯有本身才干解密,所以可得出公钥肩负加密,私钥担任解密;同理,既然是签订契约,那必将是不指望有人冒领自个儿发音信,唯有本人工夫公布这几个签字,所以可得出私钥担任签字,公钥担任验证。

先是步(生成私钥和公钥文件):

本人动用的是MAC,下面自带了OpenSSL,当然小编删除了,又用HomeBrew安装了二个较新的本子。又看了下Linux上也自带了openssl,windows上从不,能够去官方网站下载安装

1.终端输入openssl,进入openssl状态

2.生成2个拾二十3个人的私钥:genrsa -out rsa_private_key.pem 1024

3.运用私钥生成JAVA协理的PKCS捌类型的私钥:pkcs八 -topk捌 -inform PEM -in rsa_private_key.pem -outform PEM -nocrypt -out pkcs8_private_key.pem

四.生成JAVA援救的PKCS82进制类型的私钥:pkcs八 -topk八 -inform PEM -in rsa_private_key.pem -outform DER -nocrypt -out pkcs8_private_key.der

伍.生成公钥:rsa -in rsa_private_key.pem -pubout -out rsa_public_key.pem

陆.生成iOS支持的der证书,其间用到了证书请求和自签署根证书

陆.一.创制证书请求:req -new -out cert.csr -key rsa_private_key.pem  (其间会要求填写国家地点公司消息等,随意填写OKuga认真填写都不影响证书应用)

陆.二.创设X50玖的自签署跟证件(iOS扶助X50九,限期3650天):x509 -req -in cert.csr -out rsa_public_key.der -outform der -signkey rsa_private_key.pem -days 3650

形成了以上的手续后应当在您所在的目录下生成了四个文本

图片 1

1416859-d09524d24befc11e.png

iOS 代码

请将public_key.derprivate_key.p12文件拖入Xcode项目,以及NSData Base64.h/m(可从互连网下载), 并引入Security.framework依赖库。

德姆o下载地址

怎么加密解密

加密,公钥(n,e),对面音讯m数字(字符串能够是编码),m要小于n
m^e ≡ c (mod n)
代入公钥(33二三,一柒)
65^17≡ 2790 (mod 3233)
c= 2790,正是加密之后的数字

解密,私钥(n,d)来解密
c^d ≡ m (mod n)
2790^2753 ≡ 65 (mod 3233)
解密出了 m = 65

其实本身还要好些个细节不懂,数学基础太弱了.......

本文由澳门新葡亰发布于计算机知识,转载请注明出处:iOS非对称加密RSA实现,RSA非对称加密

关键词: 日记本 新普京娱乐 iOS开发

最火资讯