我们专注攀枝花网站设计 攀枝花网站制作 攀枝花网站建设
成都网站建设公司服务热线:400-028-6601

网站建设知识

十年网站开发经验 + 多家企业客户 + 靠谱的建站团队

量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决

RSA和AES的使用-创新互联

文章目录
        • 为什么要对数据传输加密
        • 对称加密和非对称加密
          • 密钥的几种格式
          • 非对称加密算法----RSA算法
            • 产生公私密钥对
          • 对称加解密算法AES
        • 为什么要结合使用这两种算法
            • 利用RSA来加密传输AES的密钥,用AES来加密数据,思路如下:
            • 特点分析:
        • 参考链接

创新互联公司于2013年成立,是专业互联网技术服务公司,拥有项目成都网站设计、网站制作网站策划,项目实施与项目整合能力。我们以让每一个梦想脱颖而出为使命,1280元当涂做网站,已为上家服务,为当涂各地企业和个人服务,联系电话:18980820575为什么要对数据传输加密

在开发应用过程中,客户端与服务端经常需要进行数据传输,涉及到重要隐私信息时,为了避免数据泄露和被篡改,开发者自然会想到对数据进行加密,即使传输过程中被“有心人”截取,也不会将信息泄露。

对称加密和非对称加密 密钥的几种格式

1 .DER:是用二进制DER编码

.PEM:是用ASCLL(BASE64)编码

PEM格式就是在DER格式基础上进行BASE64编码

2 .CER:存放公钥,没有私钥

.PFX:存放公钥和私钥

非对称加密算法----RSA算法

在这里插入图片描述

1. 非对称加密算法需要两个密钥:公开密钥(publickey)和私有密钥(privatekey)。
2. 所谓非对称,就是指该算法需要一对密钥,使用其中一个加密,则需要用另一个才能解密。
   简单的说是“公钥加密,私钥解密;私钥加密,公钥解密”。
3.RSA算法支持加密、解密、签名、验签操作。

RSA算法操作与密钥类型关系如下:
在这里插入图片描述

产生公私密钥对

openssl genrsa -out test_priv.pem 2048 //test_pri.pem中既包含了私钥信息也包含了公钥信息
openssl rsa -pubout -in test_priv.pem -out test_pub.pem //从test_pri.pem私钥中提取公钥命令

对称加解密算法AES
密码学中的高级加密标准(Advanced Encryption Standard,AES),又称Rijndael加密法,是美国联邦政府采用的一种区块加密标准。
1. 使用时需要利用AES密钥和初始化向量IV来加解密数据。
2. 解密操作时必须使用相同的AES密钥和IV值,否则解密出来的数据是不正确的
为什么要结合使用这两种算法
1. rsa对秘钥加密是为了防止数据被篡改,而使用AES进行加解密是因为RSA太慢了,所以使用AES进行通信,RSA进行传递秘钥。
2. 数据量不大时直接用RSA就可以
利用RSA来加密传输AES的密钥,用AES来加密数据,思路如下:

1、客户端启动,发送请求到服务端,服务端用RSA算法生成一对公钥和私钥,我们简称为pubkey1,prikey1,将公钥pubkey1返回客户端。

2、客户端拿到服务端返回的公钥pubkey1后,自己用RSA算法生成一对公钥和私钥,我们简称为pubkey2,prikey2,并将公钥pubkey2利用服务端传过来的公钥pubkey1加密,加密后,传输给服务端。

3、此时服务端收到客户端传输的密文,用私钥prikey1进行解密,因为数据pubkey2是用服务端的公钥pubkey2加密的,那么,通过解密就可以得到客户端生成的公钥pubkey2

4、然后服务端自己再生成 对称密钥key,取名为aeskey,也就是我们的AES,其实也就是相对于我们配置中的长度为16没加密key,生成了这个key以后,我们就用客户端的公钥pubkey2进行加密,返回给客户端。因为被pubkey2加密的数据,只能被客户端对应的prikey2解密,所以,客户端拿到密文后,用prikey2进行解密操作,解密完,得到对称加密AES的密钥key,最后密钥key进行数据传输加密,至此,整个流程结束。

特点分析:

1、单纯的使用非对称加密方式RSA的话,效率会很低,因为非对称加密解密方式虽然很保险,但是过程复杂,需要时间长。

2、单纯使用对称加密方式AES的话,太死板,因为这种方式使用的密钥是一个固定的密钥,也就是不能改,一旦客户端或者服务端改的话,就必须通知另一方要改,并且改了后,还需要约定一相同的密钥。使用起来非常不灵活。并且,有一种极端的情况就是,一旦密钥被人获取,那么,我们是无法知道的,我们的所发的每一条数据都会被都对方获取。

but,AES有个很大的优点,那就是加密解密效率很高,而我们传输正文数据时,正号需要这种加解密效率高的;所以这种方式适合用于传输量大的数据内容。

3、基于以上两种特点,所以取其优,就是结合使用;用RSA方式传输AES的密钥,然后客户端和服务端拿到AES的密钥后,再进行传输正式的内容。这样既利用了RSA的灵活性,可以随时改动AES的密钥;又利用了AES的高效性,可以高效传输数据。

参考链接

https://blog.csdn.net/qingzhuyuxian/article/details/119731687
https://blog.csdn.net/mm_520111111/article/details/120379377
*https://www.cnblogs.com/f1194361820/p/4260025.html
http://t.zoukankan.com/jianguo221-p-13030046.html

你是否还在寻找稳定的海外服务器提供商?创新互联www.cdcxhl.cn海外机房具备T级流量清洗系统配攻击溯源,准确流量调度确保服务器高可用性,企业级服务器适合批量采购,新人活动首月15元起,快前往官网查看详情吧


标题名称:RSA和AES的使用-创新互联
文章源于:http://shouzuofang.com/article/cdseoe.html

其他资讯