首页 软件开发中常用的数据加密方式
文章
取消

软件开发中常用的数据加密方式

一、对称加密

加密和解密过程使用相同的秘钥

在网络传输中, A节点向B节点传数据,在数据传输之前,先使用一个秘钥在A节点上进行加密,当数据传输到B节点时,使用相同的秘钥进行解密才能获取到原始数据。这个过程是对称加密。

缺点:在网络传输的过程中,通常将加密数据和秘钥一同传输,如果被黑客通过抓包等方法拦截,可以顺利拿到加密的数据和加密秘钥。这样是不安全的。

二、非对称加密

非对称加密使用公私密钥对实现数据的加密和解密

在网络传输中, A节点向B节点传数据,在发送数据的时候使用公钥进行加密。使用公钥加密时,只能使用与之相对应的私钥进行解密。这样,在传输数据的时候就不存在安全隐患问题了,比如现在大多数电商网站,就是使用的非对称加密的方式。

例子:现在很多HTTPS网站通过权威CA机构申请了SSL证书,证书包含一对公私钥。当我们访问HTTPS网站时,客户端会将公钥下载到本地,在向服务器传输数据之前,客户端先使用公钥进行加密,数据传到服务器之后,服务器再使用私钥进行解密。

三、单向加密

单向加密只能加密不能解密

  • 例子1 数据库中的保存密码可以使用md5进行加密,加密之后不能解密。常用的单向加密还有sha1加密、sha256加密。

  • 例子2

我们可以通过检测一个文件的md5检查一个文件是否被修改过。最开始我们可以使用md5sum进行校验得到文件初始md5检验值。后续再检测文件的时候,再通过msd5sum进行校验得到文件实时md5检验值,如果两个值不一样,则文件被修改过。

本文由作者按照 CC BY 4.0 进行授权

怎样检测SSL证书和密钥是否匹配

Linux学习路径