非对称加密使用一对密钥,分别是公钥(public key)和私钥(private key)。
使用场景
加密场景
加密场景 公钥加密、私钥解密:
- 公钥加密:在这种场景下,使用接收方的公钥对数据进行加密。公钥是公开的,任何人都可以获取它。所以,发送方使用接收方的公钥来加密数据,确保只有拥有相应私钥的接收方能够解密数据。
- 私钥解密:接收方使用其私钥对接收到的加密数据进行解密。私钥是保密的,只有接收方知道,这样可以确保数据只有接收方能够解密并读取。
这种场景适用于保护数据的机密性,并确保只有特定接收方(私钥持有者)能够解密和查看数据。一个典型的应用是在SSL/TLS协议中用于安全地传输敏感数据,如网银交易、密码登录等。
Https中交换随机key
签名场景
加签验签场景 私钥加密、公钥解密:
- 私钥加密:在这种场景下,使用发送方的私钥对数据进行加密。私钥是保密的,只有发送方知道。因此,发送方使用私钥加密数据,确保接收方只能使用公钥进行解密。
- 公钥解密:接收方使用发送方的公钥对接收到的加密数据进行解密。公钥是公开的,任何人都可以获取。
这种场景适用于数字签名的应用。发送方使用私钥对数据进行签名,接收方通过使用发送方的公钥来验证签名的真实性和数据的完整性,确保数据没有被篡改,并且确保是由私钥持有者发送的。
JWT的验签
总结:
- 公钥加密、私钥解密:用于数据机密性,确保只有接收方能够解密和读取数据。
- 私钥加密、公钥解密:用于数字签名防篡改,确保数据完整性和真实性。