iOS中App的安全-RSA加密
2019-09-29 本文已影响0人
非洲小白猿
RSA概述
首先看这个加密算法的命名,很有意思,它其实是三个人的名字。早在1977年麻省理工学院的三位数学家Rivest、Shamir 和 Adleman一起提出了这个加密算法,并且用他们三个人姓氏开头字母命名。RSA加密算法是一种非对称加密算法
,其玩法打破了以往所有加密算法的规则。在RSA出现之前,所有的加密方法都是同一种模式:加密解密的规则使用同一种方式。这种长达几个世纪的加密方案有一个致命的缺陷,在传递加密信息时,必须让对方拿到解密的规则才能正常解密。由于加密解密的规则一致,所以保存和传递"密钥",就成了最头疼的问题。
RSA的出现解决了这个问题。我们来看看RSA是怎么进行加密的。
RSA加密/解密
1.使用公钥加密的数据,利用私钥进行解密
2.使用私钥加密的数据,利用公钥进行解密
没错,RSA加密使用了"一对"密钥,分别是公钥
和私钥
,这个公钥和私钥其实就是一组数字
。其二进制位长度可以是1024位或者2048位。长度越长其加密强度越大。目前为止公之于众的能破解的最大长度为768位密钥,只要高于768位,相对就比较安全。所以目前为止,这种加密算法一直被广泛使用。
RSA的弊端
由于RSA算法的原理都是大数计算,使得RSA最快的情况也比对称加密算法慢上好几倍。速度一直是RSA的缺陷,一般来说RSA只用于小数据的加密。RSA的速度是对应同样安全级别的对称加密算法的1/1000左右。
RSA终端命令演示
由于Mac系统内置OpenSSL(开源加密库),所以我们可以直接在终端上使用命令来玩RSA。OpenSSL中RSA算法常用指令主要有三个。