在以往提供光盘镜像或其他大型软件下载时,总是会同提供相应的SHA1值等信息,并建议朋友们使用验证软件纯洁性:Hash V1.04 MD5验证SHA1 CRC32工具进行验证,来保证自己所下载的是官方原版!但很多朋友对此很疑惑,为什么SHA1值就能保证自己所下载软件的纯洁性呢?除了SHAI值以外(MSDN网站提供的效验值只要是SHAI值),国内下载网站往往提供“MD5值”作为效验值,也可以用来验证软件的纯洁性!对于MSDN提供资源的详细信息中,还有一个很不起眼的“CRC”,那他又有什么作用?下面虾虾就这些疑问,做下通俗简单的介绍!
SHA1——
SHA1的规范名称是SHAI-1,SHA1的全称是Secure Hash Algorithm(安全散列算法),由美国“国家安全局(NSA)”和“国家标准与技术研究院(NIST)”联合研发,用来保护敏感的未保密资料。在联邦政府使用的同时,鼓励商业、企业和其它组织使用,从而实现“数位”版权管理(SHA1具有全球唯一特性)。通俗的说,既一个软件发生任何轻微的变化(如文件丢失,文件改写)都会引起SHA1值发生变化!
MD5——
全称是Message-Digest Algorithm 5(信息 – 摘要算法)。MD5使用的是哈希函数:不可逆加密算法。大家熟悉的典型应用,就是将“光盘镜像或大型软件”当作一个大文本信息,通过不可逆的字符串变换算法产生“字符”信息摘要,以此检查、验证信息传输的完整一致(MD5具有全球唯一特性)。通俗的说,既一个软件发生任何轻微的变化(如文件丢失,文件改写)都会引起MD5值发生变化!
CRC——
全称是Cyclical Redundancy Check(循环冗余校验)。在各类下载的实际应用时:发送装置首先要计算出CRC值并随数据一同发送给接收装置;接收装置对下载数据进行计算并与收到的CRC相比较,从而确保数据传输的完整准确。CRC-32是CRC“分支”:一般用于Point-to-Point的同步传输。