区别

  • 对称加密:加密解密用的都是一个秘钥。常见的算法有DES、IDEA、RC2等
  • 非对称加密:私钥加密的内容只有公钥才能解开,公钥加密的内容只有私钥才能解开。也就是说,用其中一个钥匙加密,那么必须用另一个钥匙解密。常见的算法有RSA、DAS、ECC等。

非对称加密的使用场景

在了解使用场景之前,先分析一下非对称加密。
公钥私钥本质上是一样的(也就是说两者可以互换),之所以这么区分,就是因为一个公开了,另一个没公开,公开了就意味着有风险。

  • 如果我们先用私钥加密一个信息,然后把信息发出去,让别人用我们之前公开或发送的公钥解密来获取信息,这是一种使用方法。相应的场景有签名(服务端加签、客户端解签验证)。像我们平时通过xshell直连服务器,一般是通过ssh协议,xshll生成一对公钥私钥,把私钥放在本地C:\Users\用户名.ssh目录下并导入shell,把公钥发送给服务器管理员,放在服务器中。这样我们连接服务器的时候,使用自己私钥加密,然后发给服务器使其用公钥解密,达到一个签名的效果。再比如git中也是支持https和ssh两种协议。
  • 相反的一个场景就是加解密了,比如常见的https中,服务端先给客户端发送一个公钥,客户端通过公钥解密一些信息(比如客户端生成的会话秘钥),发送给服务端,服务端通过自己的私钥解密,达到信息安全传输的目的。

对称加密的适用场景

对称加密一般用在,我有一个秘钥,你也有这个秘钥,这个秘钥只有我们两个知道,所以可以用来传递一些隐秘的信息。
还是上面的https的流程,客户端和服务端拥有同一个会话秘钥,这样两者就可以通过这个秘钥加密会话,进行安全传输。
至于这个秘钥怎么来的,就是通过上面非对称加密的加解密场景。