数据摘要算法(MD5,SHA等)简单自结

1.数据摘要算法,简单的理解就是它是一个算法函数,通过该函数可以将一个很长的数据生成一个固定长度的摘要信息。数据摘要算法就是一种散列函数。


2.常见的数据摘要算法有

  • MD5
  • SHA家族
  • CRC32
  • ......
3.md5算法
       MD5即Message-Digest Algorithm 5,中文名称为信息-摘要算法 5。在Unix-like系统上,md5sum是用来计算和校验文件报文摘要的工具程序。MD5算法生成的摘要的长度为128bit.
       在Unix-like系统上常见用法有:
#1. 生成md5文件
md5sum filename
md5sum filename > filename.md5

find dirname/ -type f -exec md5sum {} \;
find dirname/ -type f -exec md5sum {} \; > dirname.md5

#2. 校验文件内容和md5是否一致
md5sum -c filename.md5
md5sum -c dirname.md5


4.SHA

         SHA即Secure Hash Algorithm,中文名称为安全哈希算法。在SHA家族中有SHA-1,SHA-224,SHA-256,SHA-384,和SHA-512这几种单向散列算法。SHA-1,SHA-224和SHA-256适用于长度不超过2^64二进制位的消息。SHA-384和SHA-512适用于长度不超过2^128二进制位的消息。

        SHA家族算法生成的摘要长度如下:

算法 输出散列值长度(bits) 中继散列值长度(bits) 数据区块长度(bits) 最大输入消息长度(bits) 一个Word长度(bits) 循环次数 使用到的运算符 碰撞攻击
                 
SHA-1 160 160 512 264 − 1 32 80 +,and,or,xor,rotl 存在263的攻击
SHA-256/224 256/224 256 512 264 − 1 32 64 +,and,or,xor,shr,rotr 尚未出现
SHA-512/384 512/384 512 1024 2128 − 1 64 80 +,and,or,xor,shr,rotr 尚未出现
       在unix-like系统上,shasum和sha1sum是用来计算SHA摘要信息的工具程序。其中sha1sum是SHA-1算法专用的工具,shasum是通用SHA工具,可以通过指定命令选项的形式,来确定是用哪一种SHA算法。

       在unix-like上的常用操作有:

#1. 使用SHA-1算法生成摘要
sha1sum filename
sha1sum filename > filename.sha

#2. 指定SHA家族的某种算法生成摘要信息(使用-a选项可以指定具体的SHA算法)
shasum -a 256 filename  #使用SHA-256算法生成摘要
shasum -a 244 filename  #使用SHA-244算法生成摘要

#3. 校验SHA摘要
shasum -c filename.sha
sha1sum -c filename.sha


你可能感兴趣的:(数据摘要算法(MD5,SHA等)简单自结)