软件开发中常用的加密方法

一、对称加密

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

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

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

二、非对称加密

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

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

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

三、单向加密

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

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

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

所有原创文章采用 知识共享署名-非商业性使用 4.0 国际许可协议 进行许可。
您可以自由的转载和修改,但请务必注明文章来源并且不可用于商业目的。
本站部分内容收集于互联网,如果有侵权内容、不妥之处,请联系我们删除。敬请谅解!

评论已关闭

你是否在某个夜深人静的时刻,静静地听着Bressanone,思念着某人。—— by 小宇

每个人心里都有一段伤痕,时间才是最好的疗剂。

人总是珍惜未得到的,而遗忘了所拥有的。

退一步,并不象征我认输;放手,并不表示我放弃;微笑,并不意味我快乐!

人海中再回首,朋友真诚依旧,生命里重逢,心境平和温柔,往事如风,岁月如歌,漫漫人生路,苍桑几许,幸福几何!