网络通信中使用的算法 - 你过来看看 - SegmentFault
加密算法的作用一般都是为了解决通信过程中出现的三个问题 :
身份验证
数据完整性校验
数据机密性
我们之后所讲的所有加密算法, 都是围绕着这三个问题展开的.
单向加密算法
这种加密算法有两个特点 :
加密过程不可逆.即明文通过加密生成密文,但是无法通过密文推算出明文
不同的数据加密出来的结果肯定不一样,不存在不同的数据加密之后生成同样的密文.
定长输出.即不管对多大的数据进行加密,加密之后的结果肯定是定长的.
根据上面的前两个特性,我们可以利用单向加密算法可以用来保证数据完整性.
我们假设 :
A要发送一段数据给B,在发送的过程中可能会被C截取,C截取并修改数据之后发送给B,这种攻击称为中间人攻击.为了保证数据在通信过程中不被篡改,A使用单向加密算法对数据进行加密,然后生成的密文我们成为特征码,把特征码附加在数据之后,一起发送给B.这样子C即时截取修改了数据再发送给B.B只要把数据重新加密生成特征码,跟附加在数据之后的特征码进行比较,就可以知道数据被中间人修改过了.
典型的加密算法有MD5,SHA1等等.在网上下载东西的时候会听过MD5校验,就是利用了单向加密算法的特性.下载的软件旁边会附带一串MD5值,下载完成后可以对下载的软件进行MD5计算,然后比较附带的MD5值,来保证软件没有被篡改.
Read full article from 网络通信中使用的算法 - 你过来看看 - SegmentFault
No comments:
Post a Comment