非对称加密的加密解密与签名验签

写在前面,在网络传输中,我们的各种请求和相应,无法避免被人拦截,这就可能导致消息的泄露,为了解决这个问题,发送方可以对报文(数据)进行加密跟签名,接收方进行解密跟验签。

加密解密:公钥加密,私钥解密,保证信息的保密性,只有拥有密钥的双方才能获知。

签名验签:私钥签名,公钥验签,保证信息的来源,防止信息被篡改。

说一个场景,A 公司和 B 公司之间的接口对接,采用非对称加密技术,对数据加密。

A 生成一对密钥(公钥 A公 和私钥 A 私),B 也生成一对密钥(公钥 B公 和私钥 B私)。

先说加解密的问题,A 向 B 发起请求,那怎么才能保证数据不被获取到呢?先想一个问题,不管是A的公钥还是B的公钥,都是要发送给对方的,不管以何种方式,比如发QQ或者微信告知,都有可能被人拦截,公钥泄露,但是私钥都是各自保存在自己的数据中,不进行网络传输,所以私钥理论上是不可能被人获知的,那么数据加密用的是公钥还是私钥?解密用的公钥还是私钥?

obviously,A向B 发请求,用B公钥进行加密,B收到数据后,使用B的私钥进行解密,这样,即使数据传输过程中,被人拦截了,但是因为别人不知道私钥,因此也无法解密数据,但是由于公钥是公开的,不能保证别人不会篡改数据。

 

再说签名跟验签的问题,上面说了,加密解密不能保证数据不被篡改,那么签名的作用就来了。A向B 发请求,A 使用 A的私钥进行数据签名,B 收到请求后,使用A的公钥进行验签。由于A的私钥不可能被获知,所以即使有人拦截到了信息,也不能对内容进行篡改。

 

两者结合使用大法好。

你可能感兴趣的:(非对称加密的加密解密与签名验签)