信息摘要

信息摘要

消息摘要算法是密码学算法中非常重要的一个分支,它用于生成数据的"指纹",具有不可逆性。消息摘要算法也被称为哈希(Hash)算法或散列算法
消息摘要算法的主要特征是加密过程不需要密钥,并且经过加密的数据无法被解密。著名的摘要算法有MD5算法和SHA-1算法及其大量的变体。
信息摘要

  • MD5:是最常用的一种散列函数,用以提供消息完整性保护。无法从结果还原出原始信息
    算法的输入输出
    输入:任何长度的字节流
    输出:128位二进制(常以32位十六进制字符显示)
    加密过程不需要密钥,加密后的数据无法被解密。
    只有输入相同的明文数据经过相同的消息摘要算法才能得到相同的密文。
    算法以512位为一个分组来处理输入的信息,每一分组又被划分为16个32位子分组,经过了一系列复杂的数据填充、分组循环和换位拼接处理后,算法的输出四个32位分组,这四个32位分组级联后生成一个128位(16字节)的散列值。
  • SHA1:比MD5更安全的一种散列函数。无法从结果还原出原始信息
    算法的输入输出
    输入:任何长度的字节流
    输出:160位二进制(常以40位十六进制字符显示)
    SHA1和MD5的区别:
    1、SHA1摘要比MD5摘要长32位,SHA1对暴力破解有更大的防御强度。
    2、由于MD5的设计,易受密码分析的攻击,SHA1显得不易受这样的攻击。
    3、在相同的硬件上,SHA1的运行速度比MD5慢。

信息息摘要算法的应用

  • 一致性验证
    从网上下载文件,软件,各种资料的时候,有些文件会提供MD5对照信息。
    利用MD5校验软件来核对下载的文件,可验证下载得到的文件与传送方提供的文件是否相符,防止被"篡改"。
  • 安全访问验证
    注册时提交的口令经过Hash计算后存入数据库。
    验证时提交的口令同样进行Hash计算。
    这可以避免用户的密码被具有系统管理员权限的用户知道以此保护敏感信息。
    即使数据库被不法分子窃取,也很难获知用户的真正口令。
  • 数字签名
    数字签名是只有信息的发送者才能产生的别人无法伪造的一段数字串,这段数字串类似于写在纸上的物理签名,用于鉴别数字信息的真伪,同时也是对信息的发送者身份真实性的一个有效证明。
    数字签名是公钥加密技术与消息摘要技术的结合应用。
上一篇:Android证书签名SHA1


下一篇:SHA1/MD5散列算法实现(C语言)