Advertisement

SHA-1 的测试和训练(Python 版本)

阅读量:

SHA-1算法能够将长度不超过2的64次方的任意明文信息转换为固定长度为160位的哈希值。为了更清晰地阐述SHA-1的具体运作方式,此处将其操作过程划分为三个部分进行说明。

一、消息填充策略分析

【对原始数据进行补全处理,使其长度达到512位或其整数倍,这是由于SHA-1算法采用分组处理方式,每个处理单元为512位。本文以单个512位的数据组为例,暂不考虑较长数据的情况。

具体填充步骤如下:

  1. 在原始数据末尾首先添加一个字节,其二进制表示为1000 0000

  2. 随后持续添加零字节,但需预留出64位空间

  3. 最后64位则用于存储原始数据的长度信息

以“abc”作为示例进行说明:其中‘a’对应的ASCII码为97,‘b’为98,‘c’为99。因此初始的二进制序列为:

01100001 01100010 01100011

按照第一步操作,在末尾添加一个字节的二进制值为1000 0000后,序列变为:

01100001 01100012 该行内容因格式问题显示异常,请重新检查原文内容以确保准确性。

复制代码
 01100001   01100010   01100011   10000000

    
 00000000   00000000   00000000   00000000 
    
 00000000   00000000   00

全部评论 (0)

还没有任何评论哟~