公匙私匙加密解密

前言:

前段时间刚好做了一个统一支付微服务版的项目,这里记录一下我曾今踩过的一些坑以及一些和银行打交道的经验。

正文:

今天说下银行接口中的加密和签名,加密我相信大家都听到过,无非就是对称加密和非对称加密,当然,MD5除外,这个东西加密后时不能逆向的,即明文加密后的内容不能重新解析成明文,哈哈。

扯皮扯完了,说说正事,一般我们对接银行的接口,银行会提供一个接口文档给我们,有的银行比较人道,文档中会有实际的调用DEMO,有的就比较坑(MLGB),只有一个文档,其它全靠自己摸索。这里主要讲下接口文档中必不可少(超级重要)的加解密以及签名验签流程,不要怀疑我说的是真是假,这个流程每个接口都需要用,就算我说的不对,我也不会承认的。

要了解这个加解密流程以及签名验签流程,我们先要认识一个东西,那就事公私匙对,一般来说银行接口都是采用非对称加密的形式来保证信息安全的。那什么是对称加密呢,其实百度搜一下也是有一大堆解释,如果我说我在这里就不做多解释的话,感觉太装逼,所以我就去网上抄了一点,大体上如下:

非对称加密有两个证书,一个是公匙,一个是私匙。公匙私匙有一个特点是公匙加密的内容只能用私匙解密,私匙加密的内容只能用公匙来解密,下面来解释解释。

首先,假设一个场景,无间道,甲是情报局老大,乙是甲派出去的一个间谍,现在甲乙要交换情报,但是怕这个情报被别人知道,所以甲想办法给这个情报加密再发送给乙,所以甲就先去弄了一对公私匙,然后甲线下把私匙给了乙。某一天晚上,乙得知了敌军要搞事情,就回家把情报(搞事情)通过私匙加密然后发送给甲,甲通过私匙解密得知了敌军的动向,先下手为强,就打败了敌军。次数多了后,敌军觉得不对劲,然后以为有间谍,就开始监听所有往外发的数据,虽然每次都截取到一些不明乱码,但是由于没有公私,所以也不知道截取的内容是什么。

时间久了,乙终于在某一天被抓了,敌军以为获得了乙的私匙(在无间道里面这个东西应该叫密码本),就很开心,然后利用乙的私匙开始破译其他间谍发出去的情报,但由于每个情报人员都有一个私匙加密,而公匙放在情报局,所以,其他情报人员发出的情报敌军还是解析不了。所以非对称加密的好处就提现出来了,要是放以前,要是一个情报人员被抓了,被审问出了密码本,那么这个情报系统就瘫痪了,但是现在不同,每个情报人员的加密方式都是不同的,而解密方式只有情报局总部有,所以再也不用担心加密规则泄露出去啦(也不用去管间谍生死了)。

按照上面的例子来看,其实就好理解了,我们调用银行接口的时候,把明文加密,发给银行,银行解密,然后把处理结果加密发送给我们,我们再解密,然后得到处理结果。其实如果你要用对称加密也行,但对称加密一般都会有一个密码库,容易被破译,所以还是用非对称加密好点。

下面这张图就是大概的流程。


 

 

 

 

 

 

 

 

公匙可被广泛传播,甚至保存在公共密匙数据库中以被其他Internet用户查阅。私匙属于个人信息,绝不应该泄漏给其他人。
公匙和私匙相互作用对数据进行加密及解密。被公匙加密的数据只能被私匙解密,被私匙加密的数据也只能被一个公匙解密。这样就可以实现双重认证。
用户在发送关键信息给指定人前,首先使用该用户的公匙对信息进行加密。因为只有使用该用户的私匙才能对发送信息进行解密,所以就保证了没有私匙的其他人不会解密信息。
另外,用户也可以使用他的私匙来加密信息,然后发送给许多人。因为只有使用发送者的公匙才能对接收信息进行解密,这样接收者就能确信信息的确来自某个人。

你可能感兴趣的:(公匙私匙加密解密)