RSA AES-对称加密和非对称加密

发布于 2018-11-11  148 次阅读


客户端加密过程主要分为以下三个步骤:

  • 1.客户端:随机产生AES的密钥
  • 2.客户端:对身份证信息(重要信息)进行AES加密
  • 3.客户端:通过使用RSA对AES密钥进行公钥加密
  • 4.服务端:对加密后的AES密钥进行RSA私钥解密,拿到密钥原文;
  • 5.服务端:对加密后的重要信息进行AES解密,拿到原始内容。
    > 之所以这么麻烦,因为:
    > 1. AES对称加密、解密的速度要比RSA很多,

> 2. 但是,安全性却不如RAS

栗子:
- 1,客户端传输重要信息给服务端,服务端返回的信息不需加密的情况

客户端传输重要信息给服务端,服务端返回的信息不需加密,例如绑定银行卡的时候,需要传递用户的银行卡号,手机号等重要信息,客户端这边就需要对这些重要信息进行加密,使用RSA公钥加密,服务端使用RSA解密,然后返回一些普通信息,比如状态码code,提示信息msg,提示操作是成功还是失败。这种场景下,仅仅使用RSA加密是可以的。
- 2,客户端传输重要信息给服务端,服务端返回的信息需加密的情况
客户端传输重要信息给服务端,服务端返回的信息需加密,例如客户端登录的时候,传递用户名和密码等资料,需要进行加密,服务端验证登录信息后,返回令牌token需要进行加密,客户端解密后保存。此时就需要结合这两种算法了。

一般情况下,RSA时需要和AES结合使用的:客户端使用RSA + AES对重要信息进行加密


摘自百度百科

RSA

非对称加密算法

虽然非对称加密很安全,但是和对称加密比起来,它非常的慢,所以我们还是要用对称加密来传送消息,但对称加密所使用的密钥我们可以通过非对称加密的方式发送出去。

私钥只能由一方安全保管,不能外泄,而公钥则可以发给任何请求它的人。非对称加密使用这对密钥中的一个进行加密,而解密则需要另一个密钥。比如,你向银行请求公钥,银行将公钥发给你,你使用公钥对消息加密,那么只有私钥的持有人--银行才能对你的消息解密。与对称加密不同的是,银行不需要将私钥通过网络发送出去,因此安全性大大提高。

非对称加密算法需要两个密钥:公开密钥(publickey)和私有密钥(privatekey)。

  • 公开密钥与私有密钥是一对
  • 如果用公开密钥对数据进行加密,只有用对应的私有密钥才能解密
  • 如果用私有密钥对数据进行加密,那么只有用对应的公开密钥才能解密。
  • 因为加密和解密使用的是两个不同的密钥,所以这种算法叫作非对称加密算法。

简单的说是“公钥加密,私钥解密;私钥加密,公钥解密”。


AES

对称加密算法
意为高级加密标准(英文:Advanced Encryption Standard,缩写:AES)

最快速、最简单的一种加密方式,加密(encryption)与解密(decryption)用的是同样的密钥(secret key),这种方法在密码学中叫做对称加密算法。对称加密有很多种算法,由于它效率很高,所以被广泛使用在很多加密协议的核心当中。

对称加密通常使用的是相对较小的密钥,一般小于256 bit。因为密钥越大,加密越强,但加密与解密的过程越慢。如果你只用1 bit来做这个密钥,那黑客们可以先试着用0来解密,不行的话就再用1解;但如果你的密钥有1 MB大,黑客们可能永远也无法破解,但加密和解密的过程要花费很长的时间。密钥的大小既要照顾到安全性,也要照顾到效率,是一个trade-off。

对称加密的一大缺点是密钥的管理与分配,换句话说,如何把密钥发送到需要解密你的消息的人的手里是一个问题。在发送密钥的过程中,密钥有很大的风险会被黑客们拦截。现实中通常的做法是将对称加密的密钥进行非对称加密,然后传送给需要它的人。


赤夜染尽 千樱散落 零时夜雨 无茵之音