公钥,私钥,对称密钥

 概述

        对于Java的加密,一直都是很模糊,今天简单梳理下公钥,私钥,对称密钥等相关的理念和关联.

公钥,私钥-->非对称加密

         公钥和私钥成对出现,顾名思义,公钥就是公开的密钥,是给通信的其他方的,私钥则是只有你自己知道的.通信时,一般而言,公钥用于敏感信息的加密,私钥用于签名.对应的另一方,则使用他自己的私钥进行数据解密,使用你提供的公钥进行验签.这样可能感觉比较乱,举个例子:

      A,B双方准备进行系统间的通信,基于安全的考虑,采用数据加密通信.这时候,A有自己的公私钥,分别是A公,A私,B也有自己的公私钥,B公,B私.通信前,双方需要交换公钥,这时候,A手上的密钥有:A私,B公.B手上的密钥有:B私,A公

     通信时,A使用B公进行敏感信息的加密,使用A私签名.B收到信息后,使用B私进行敏感信息解密,使用A公进行验签.反之亦然.

从上面可以总结:

   1.公钥和私钥成对出现.公开的密钥叫公钥,只有自己知道的叫私钥
   2.公钥用于敏感信息的加密,私钥用于签名.所以公钥的作用是保证数据安全,私钥的作用的标记信息的发送方.

   3.用公钥加密的数据只有对应的私钥可以解密,用私钥签名只有对应的公钥可以验签.

   4.用公私钥加解密的方式叫作非对称加密.

   5.其实通信双方使用同一对公私钥也是可以的.

对称密钥-->对称加密(SSL)

    对称密钥只有一个,可以是字符串,也可以是数字,对应的加密方法是对称加密.一般而言,对称加密用于数据的加密,是基于数据安全更深一层的考虑,需要配合公私钥的使用.比如:

       A要把银行卡的密码123发给B,A觉得仅仅用公钥加密不够安全,便想了个方法: 先用abc给密码123加密得到456,再用公钥把abc加密得到def,最后把456和def一起发给B,B收到信息后,先用私钥解密def得到abc,再用abc解密456得到了银行卡的密码123.

总结:

  1. abc就是这次通信的对称密钥,也叫会话密钥

  2.对称加密算法就是加密过程和解密过程是对称的,用一个 密钥加密,可以用同一个密钥解密

  3.通信双方使用一方或者双方的公钥来传递和约定会话密钥 (这个过程叫做握手)

PS:常用的对称加密算法有:DES(密钥长度为16)      3DES(密钥长度为24) 

    

猜你喜欢

转载自blog.csdn.net/mlsama/article/details/83621592