加密

 

数字摘要:从一个较大的数据(如一个文件或一个长字符串)中提取出一部分信息用来作为该数据的指纹(也叫哈希值)。通常用来防篡改或验证数据是否有损坏。数字摘要算法可以达到在几万字的文件中哪怕只修改一个标点就会产生截然不同的摘要的效果。常见的MD5SHA都是数字摘要算法。数字摘要值通常是几十个字符的长度,通过数字摘要无法反向算出原数据,即在摘要时,信息会丢失。但是,对于密码这样的短字符串,可以通过巨大的密码字典反向映射查出原字符串,因此短密码通过数字摘要的方式存储保密效果不佳!6个字符生成的数字摘要可以在1秒内查出原字符串,6位纯数字则可以缩短到毫秒内破解!

 

对称加密:加密和解密都使用的是相同的密钥。通过密钥可以从密文还原出原文。对称加密最大的问题是如何保存密钥。战争时期,各种间谍努力窃取的就是密钥。DES、3DES、AES、RC5等都是对称加密算法。我们使用无线网络上网时输入的密码就需要以加密的方式发送,因为Wifi信号充满了空间,任何人都可以监听到。但用来加密的密钥本身也需要通过Wifi从无线路由传到我们的电脑上,这时就会造成密钥泄露,因此通过较长时间监听Wifi数据就能从数据中找到密钥,进而破解出Wifi密码。

 

非对称加密:加密和解密使用的是不同的密钥。使用非对称加密时,首先会计算出一对密钥,分别称为公钥和私钥。公钥可以分发给其他人,甚至完全公开;私钥则由自己保存。通过私钥加密的数据只能使用公钥解密,而使用公钥加密的数据只能使用私钥解密。非对称加密的这个特性非常有趣,也有很大的应用价值。RSA即是一种非对称加密。

 

数字签名:非对称加密技术的一种应用。可以用来保证数据发送者的身份。因为私钥只有创建密钥对的人才有,因此可以认为只要是使用某个私钥加密过的数据就一定是这个私钥的拥有者发出的数据。因为非对称加密比较慢,不适合加密大量数据,所以通常是先使用数字摘要计算出一个很短的摘要值,再对摘要值进行私钥加密。

 

数字证书:非对称加密技术的另一种应用。虽然公钥是可以公开的,但怎样确保我们得到的公钥是某人或某个机构的公钥而不是别人冒充的公钥呢?这时就需要有一个可以信任的机构为公钥提供证明。这种包含了公钥拥有者名称和可靠证明的公钥(通常是证明机构的数字签名)就是证书。所以在实际的通信和数据交换时,都不会直接使用裸公钥,而是要求对方提供证书。如HTTPS请求就要求网站的服务器提供证书证明公钥是可靠的(以防冒充钓鱼),我们在手机上安装的App也需要证书才能提交到App Store。值得一提的是,证书是有有效期的,证书过期将使HTTPS网站受到影响,向CA证书颁发机申请证书是需要交费的(按年计费)。

posted @ 2018-04-17 07:25  刘兵博客  阅读(202)  评论(0编辑  收藏  举报