公私钥加解密、加签、验签是在与各类银行、第三方机构进行对外通讯中,必然涉及一些知识。PS:我这里提到的密钥概念可以理解为一个String串就行(也有二进制形式的,同理),比如你把.cer文件以文本方式打开其实就是一个String串而已。
首先我们讨论下加密方式的分类:对称加密和非对称加密。
1、 对称加密:也就是加密和解密所使用的密钥是同一个,常用到的有AES、DES、3DES等等,这类加密方式容易理解,不过多赘述。
2、 非对称加密:加密和解密所使用的密钥是一对,也就是两个,若A、B是一对密钥,那么加密使用A则解密只能使用B,加密使用B则解密只能使用A。这也就是公私钥的原型。
接下来我们来说公私钥分别是用来干嘛的,通常我们说公钥用来加密,私钥用来解密,但其实这不是必须的,对于程序而言,你用什么加密,用什么解密并不重要,只要是一对就行。所以也可以用私钥来加密,公钥来解密。那为什么我们不这么用呢?我们先来看看公私钥的定义,公钥,如字面意思,就是公开的、甚至可以发布在网上的密钥,每个人都可以拿到它,称之为公钥;私钥则相反,只有一个人能拥有,并且是保密的。那么问题就解决了,如果你拿着私钥加密,发出去的信息地球人都能解开,那……,但是如果用公钥加密,发出去的信息只有你一个人能解开,那就是有意义的,