Skip to content

Latest commit

 

History

2 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 

Repository files navigation

概述

hashing_algorithms.py 是一个Python脚本,用于从零开始实现MD5和SHA-1哈希算法。脚本还会根据用户的姓名和学号生成一个特定的标签字符串,并计算该标签字符串的MD5和SHA-1哈希值。最后,它会根据这些哈希值计算出Q值和N值。

功能

  1. MD5算法实现:从零开始完整实现了MD5哈希算法(遵循RFC 1321标准)。
  2. SHA-1算法实现:从零开始完整实现了SHA-1哈希算法(遵循FIPS PUB 180系列标准)。
  3. 标签字符串生成:根据以下格式生成一个唯一的字符串: "信息与网络安全" + 姓名拼音 + 学号
  4. 哈希值计算:
    • 计算标签字符串的128位MD5哈希值(整数形式和小端十六进制形式)。
    • 计算标签字符串的160位SHA-1哈希值(整数形式和大端十六进制形式)。
  5. Q值计算: Q = (MD5_hash_integer + SHA_1_hash_integer) mod 2^128
  6. N值计算: N = 1 + (Q mod 21)

如何使用

  1. 修改个人信息: 打开 hashing_algorithms.py 文件,找到以下两行代码:

    student_name = "NAME" 
    student_id = "ID"   
  2. 运行脚本: 在终端或命令行中,导航到脚本所在的目录,然后执行以下命令:

    python hashing_algorithms.py

输出结果

脚本执行后,会在终端打印以下信息:

  1. Tag 字符串: 根据姓名和学号生成的唯一标签字符串。
  2. Tag 的 MD5 哈希值 (十六进制): 标签字符串的MD5哈希值的32位十六进制表示(小端序)。
  3. Tag 的 MD5 哈希值 (128位无符号整数): 标签字符串的MD5哈希值的128位无符号整数表示。
  4. Tag 的 SHA-1 哈希值 (十六进制): 标签字符串的SHA-1哈希值的40位十六进制表示(大端序)。
  5. Tag 的 SHA-1 哈希值 (160位无符号整数): 标签字符串的SHA-1哈希值的160位无符号整数表示。
  6. 计算得到的 Q 值: 根据公式计算出的Q值(128位无符号整数)。
  7. 计算得到的 N 值: 根据公式计算出的N值。

About

hashing_algorithms.py 是一个Python脚本,用于从零开始实现MD5和SHA-1哈希算法。脚本还会根据用户的姓名和学号生成一个特定的标签字符串,并计算该标签字符串的MD5和SHA-1哈希值。最后,它会根据这些哈希值计算出Q值和N值。

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages