这两年都在做数据加密,而数据加密分几种,一种是结构化数据加密(数据库),一种是非结构化数据加密(终端文件),非结构化数据目前行业一般用对称加密算法来做加密,方案比较成熟。结构化数据加密是这两年随着国内的相关法律完善而兴起的一种加密方式,就是对数据库里面重要的数据加密把敏感数据保护起来,在 做完数据库加密后,监管机构对数据传输也会一定的要求,譬如对数据后端传给前端也需要加密等等
在说加密之前,我们要先说下“对称加密”和“非对称加密的概念”
只需要一个秘钥就可以对数据进行加密,对称加密相对非对称加密的速度非常快。若userA给userB发送一断数据,若用对称加密方案,即为
即实现了简单的对称加密,
但是若在传输过程中收到了攻击,且**了key那么跟明文传输就没有什么区别了。
那怎么办呢?我们先看下非对称加密
需要一堆公私钥,由公钥加密,私钥解密,私钥加签,公钥验签。但是加密效率远远低于对称加密,所以并不适合连续的且对数据量大信息进行加密。
所以一般采用非对称加密结合对称加密的形式
大致流程如下
但是,若一个攻击者C,劫持了A与B之间的通信,且有B_pub,就可以把自己伪装了一个A,给B发送数据。因为是用B_pub加密的,所以B不知道是谁发来的。所以还是有风险的。那么怎么办呢?非对称加密还有一个加签验证签功能
我们在发送的过程中,用userA的a_pri对整体数据进行加签。证明是userA发送的。B收到的时候用a_pub进行验签。若验签通过,则说明是A发送的。在非对称加密过程中 私钥是永远不会对外开放的,只是本地拥有。
这样,就实现了一个比较安全传输加密方案