hash

hash算法

打算了解一下各个hash算法的细节,防止在看到伪代码时不认识

MD5

MD5加密原理步骤

  1. 在MD5算法中,首先需要对信息进行填充,使其位长对512求余的结果等于448,并且填充必须进行(N*512+448)
  2. 初始化变量,以大端字节序来表示,他们分别为: A=0x01234567,B=0x89ABCDEF,C=0xFEDCBA98,D=0x76543210(每一个变量给出的数值是高字节存于内存低地址,低字节存于内存高地址,即大端字节序。在程序中变量A、B、C、D的值分别为0x67452301,0xEFCDAB89,0x98BADCFE,0x10325476)
  3. 处理分组数据
    以下是每次操作中用到的四个非线性函数(每轮一个)。
    F( X ,Y ,Z ) = ( X & Y ) | ( (X) & Z )
    G( X ,Y ,Z ) = ( X & Z ) | ( Y & (
    Z) )
    H( X ,Y ,Z ) =X ^ Y ^ Z
    I( X ,Y ,Z ) =Y ^ ( X | (~Z) )
  • MD5 是一种基于迭代和压缩的哈希函数,其核心是对输入数据进行多轮的位运算和逻辑操作。
  • 常量值:MD5 使用特定的常量(如 0x67452301, 0xEFCDAB89 等)在计算过程中。如果在代码中看到这些特定的常量,特别是在加法操作中,通常指向 MD5 或类似算法。
  • 处理输入数据的方式:MD5 通常处理输入数据为 512 位(64 字节)块,将每个块分为多个 32 位(4 字节)单元进行处理。

hash
https://fogpost.top/2024/10/28/hash/
作者
fogpost
发布于
2024年10月28日
许可协议