⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 md5.txt

📁 这是一个用汇编语言编写的快速计算 MD5 函数
💻 TXT
📖 第 1 页 / 共 2 页
字号:
;高速MD5
;
;
MD5    proc lpBuff:DWORD, mLength:DWORD,lpMD5:DWORD
     add    esp, -58H
     pushad
     mov    eax, dword ptr ss:[ebp+0CH]
     or    eax, eax
     jnz    @md5_start
     mov    edi, dword ptr ss:[ebp+08H]
     push    20h
     pop    ecx
     mov    edx,ecx
     repne    scasb
     sub    edx,ecx
     dec    edx
     mov    dword ptr ss:[ebp+0CH],edx 
@md5_start:
     lea    edi, dword ptr ss:[ebp-40H]
     push    10H
     pop    ecx
     xor    eax, eax
     mov    dword ptr ss:[ebp-58H], eax
     rep    stos dword ptr es:[edi]
     lea    edi, dword ptr ss:[ebp-40H]
     xor    ebx, ebx
     mov    eax, dword ptr ss:[ebp+0CH]
     or    eax, eax
     je    @01
     mov    ecx, eax
     and    ecx, 3FH
     mov    ebx, ecx
     or    ecx, ecx
     je    @02
     mov    esi, dword ptr ss:[ebp+8H]
     lea    esi, dword ptr ds:[eax+esi]
     sub    esi, ecx
     cld
     rep    movs byte ptr es:[edi], byte ptr ds:[esi]
 @02:     lea    edi, dword ptr ss:[ebp-40H]
     or    ebx, ebx
     je    @03
 @01:     mov    byte ptr ds:[ebx+edi], 80H
 @03:    mov    eax, dword ptr ss:[ebp+0CH]
     xor    edx, edx
     push    08H
     pop    ecx
     mul    ecx
     mov    dword ptr ds:[edi+3CH], edx
     mov    dword ptr ds:[edi+38H], eax
     mov    eax, dword ptr ss:[ebp+0CH]
     mov    edx, eax
     shr    eax, 06H
     and    ecx, 3FH
     cmp    ecx, 38H
     jnz    @04
     dec    eax
 @04:     mov    dword ptr ss:[ebp-44H], eax
     mov    eax, 067452301H
     mov    ebx, 0EFCDAB89H
     mov    ecx, 098BADCFEH
     mov    edx, 010325476H
     mov    edi, dword ptr ss:[ebp+08H]
 @07:     jmp    @05
 @06:     dec    dword ptr ss:[ebp-44H]
     mov    dword ptr ss:[ebp-48H], eax
     mov    dword ptr ss:[ebp-4CH], ebx
     mov    dword ptr ss:[ebp-50H], ecx
     mov    dword ptr ss:[ebp-54H], edx
     push    ebp
     mov    esi, ebx
     and    esi, ecx
     mov    ebp, ebx
     not    ebp
     and    ebp, edx
     or    esi, ebp
     lea    esi, dword ptr ds:[eax+esi+0D76AA478H]
     add    esi, dword ptr ds:[edi]
     rol    esi, 7
     add    esi, ebx
     mov    eax, esi
     mov    esi, eax
     and    esi, ebx
     mov    ebp, eax
     not    ebp
     and    ebp, ecx
     or    esi, ebp
     lea    esi, dword ptr ds:[edx+esi+0E8C7B756H]
     add    esi, dword ptr ds:[edi+4H]
     rol    esi, 0CH
     add    esi, eax
     mov    edx, esi
     mov    esi, edx
     and    esi, eax
     mov    ebp, edx
     not    ebp
     and    ebp, ebx
     or    esi, ebp
     lea    esi, dword ptr ds:[ecx+esi+0242070DBH]
     add    esi, dword ptr ds:[edi+8H]
     rol    esi, 11H
     add    esi, edx
     mov    ecx, esi
     mov    esi, ecx
     and    esi, edx
     mov    ebp, ecx
     not    ebp
     and    ebp, eax
     or    esi, ebp
     lea    esi, dword ptr ds:[ebx+esi+0C1BDCEEEH]
     add    esi, dword ptr ds:[edi+0CH]
     rol    esi, 16H
     add    esi, ecx
     mov    ebx, esi
     mov    esi, ebx
     and    esi, ecx
     mov    ebp, ebx
     not    ebp
     and    ebp, edx
     or    esi, ebp
     lea    esi, dword ptr ds:[eax+esi+0F57C0FAFH]
     add    esi, dword ptr ds:[edi+10H]
     rol    esi, 7H
     add    esi, ebx
     mov    eax, esi
     mov    esi, eax
     and    esi, ebx
     mov    ebp, eax
     not    ebp
     and    ebp, ecx
     or    esi, ebp
     lea    esi, dword ptr ds:[edx+esi+04787C62AH]
     add    esi, dword ptr ds:[edi+14H]
     rol    esi, 0CH
     add    esi, eax
     mov    edx, esi
     mov    esi, edx
     and    esi, eax
     mov    ebp, edx
     not    ebp
     and    ebp, ebx
     or    esi, ebp
     lea    esi, dword ptr ds:[ecx+esi+0A8304613H]
     add    esi, dword ptr ds:[edi+18H]
     rol    esi, 11H
     add    esi, edx
     mov    ecx, esi
     mov    esi, ecx
     and    esi, edx
     mov    ebp, ecx
     not    ebp
     and    ebp, eax
     or    esi, ebp
     lea    esi, dword ptr ds:[ebx+esi+0FD469501H]
     add    esi, dword ptr ds:[edi+1CH]
     rol    esi, 16H
     add    esi, ecx
     mov    ebx, esi
     mov    esi, ebx
     and    esi, ecx
     mov    ebp, ebx
     not    ebp
     and    ebp, edx
     or    esi, ebp
     lea    esi, dword ptr ds:[eax+esi+0698098D8H]
     add    esi, dword ptr ds:[edi+20H]
     rol    esi, 7
     add    esi, ebx
     mov    eax, esi
     mov    esi, eax
     and    esi, ebx
     mov    ebp, eax
     not    ebp
     and    ebp, ecx
     or    esi, ebp
     lea    esi, dword ptr ds:[edx+esi+8B44F7AFH]
     add    esi, dword ptr ds:[edi+24H]
     rol    esi, 0CH
     add    esi, eax
     mov    edx, esi
     mov    esi, edx
     and    esi, eax
     mov    ebp, edx
     not    ebp
     and    ebp, ebx
     or    esi, ebp
     lea    esi, dword ptr ds:[ecx+esi+0FFFF5BB1H]
     add    esi, dword ptr ds:[edi+28H]
     rol    esi, 11H
     add    esi, edx
     mov    ecx, esi
     mov    esi, ecx
     and    esi, edx
     mov    ebp, ecx
     not    ebp
     and    ebp, eax
     or    esi, ebp
     lea    esi, dword ptr ds:[ebx+esi+895CD7BEH]
     add    esi, dword ptr ds:[edi+2CH]
     rol    esi, 16H
     add    esi, ecx
     mov    ebx, esi
     mov    esi, ebx
     and    esi, ecx
     mov    ebp, ebx
     not    ebp
     and    ebp, edx
     or    esi, ebp
     lea    esi, dword ptr ds:[eax+esi+06B901122H]
     add    esi, dword ptr ds:[edi+30H]
     rol    esi, 7H
     add    esi, ebx
     mov    eax, esi
     mov    esi, eax
     and    esi, ebx
     mov    ebp, eax
     not    ebp
     and    ebp, ecx
     or    esi, ebp
     lea    esi, dword ptr ds:[edx+esi+0FD987193H]
     add    esi, dword ptr ds:[edi+34H]
     rol    esi, 0CH
     add    esi, eax
     mov    edx, esi
     mov    esi, edx
     and    esi, eax
     mov    ebp, edx
     not    ebp
     and    ebp, ebx
     or    esi, ebp
     lea    esi, dword ptr ds:[ecx+esi+0A679438EH]
     add    esi, dword ptr ds:[edi+38H]
     rol    esi, 11H
     add    esi, edx
     mov    ecx, esi
     mov    esi, ecx
     and    esi, edx
     mov    ebp, ecx
     not    ebp
     and    ebp, eax
     or    esi, ebp
     lea    esi, dword ptr ds:[ebx+esi+049B40821H]
     add    esi, dword ptr ds:[edi+3CH]
     rol    esi, 16H
     add    esi, ecx
     mov    ebx, esi
     mov    esi, ebx
     and    esi, edx
     mov    ebp, edx
     not    ebp
     and    ebp, ecx
     or    esi, ebp
     lea    esi, dword ptr ds:[eax+esi+0F61E2562H]
     add    esi, dword ptr ds:[edi+4H]
     rol    esi, 5H
     add    esi, ebx
     mov    eax, esi
     mov    esi, eax
     and    esi, ecx
     mov    ebp, ecx
     not    ebp
     and    ebp, ebx
     or    esi, ebp
     lea    esi, dword ptr ds:[edx+esi+0C040B340H]
     add    esi, dword ptr ds:[edi+18H]
     rol    esi, 9H
     add    esi, eax
     mov    edx, esi
     mov    esi, edx
     and    esi, ebx
     mov    ebp, ebx
     not    ebp
     and    ebp, eax
     or    esi, ebp
     lea    esi, dword ptr ds:[ecx+esi+0265E5A51H]
     add    esi, dword ptr ds:[edi+2CH]
     rol    esi, 0EH
     add    esi, edx
     mov    ecx, esi
     mov    esi, ecx
     and    esi, eax
     mov    ebp, eax
     not    ebp
     and    ebp, edx
     or    esi, ebp
     lea    esi, dword ptr ds:[ebx+esi+0E9B6C7AAH]
     add    esi, dword ptr ds:[edi]
     rol    esi, 14H
     add    esi, ecx
     mov    ebx, esi
     mov    esi, ebx
     and    esi, edx
     mov    ebp, edx
     not    ebp
     and    ebp, ecx
     or    esi, ebp
     lea    esi, dword ptr ds:[eax+esi+0D62F105DH]
     add    esi, dword ptr ds:[edi+14H]
     rol    esi, 5
     add    esi, ebx
     mov    eax, esi
     mov    esi, eax
     and    esi, ecx
     mov    ebp, ecx
     not    ebp
     and    ebp, ebx
     or    esi, ebp
     lea    esi, dword ptr ds:[edx+esi+02441453H]
     add    esi, dword ptr ds:[edi+28H]
     rol    esi, 9H
     add    esi, eax
     mov    edx, esi
     mov    esi, edx
     and    esi, ebx
     mov    ebp, ebx
     not    ebp
     and    ebp, eax
     or    esi, ebp
     lea    esi, dword ptr ds:[ecx+esi+0D8A1E681H]
     add    esi, dword ptr ds:[edi+3CH]
     rol    esi, 0EH
     add    esi, edx
     mov    ecx, esi
     mov    esi, ecx
     and    esi, eax
     mov    ebp, eax
     not    ebp
     and    ebp, edx
     or    esi, ebp
     lea    esi, dword ptr ds:[ebx+esi+0E7D3FBC8H]
     add    esi, dword ptr ds:[edi+10H]
     rol    esi, 14H
     add    esi, ecx
     mov    ebx, esi
     mov    esi, ebx
     and    esi, edx
     mov    ebp, edx
     not    ebp
     and    ebp, ecx
     or    esi, ebp
     lea    esi, dword ptr ds:[eax+esi+21E1CDE6H]
     add    esi, dword ptr ds:[edi+24H]
     rol    esi, 5H
     add    esi, ebx
     mov    eax, esi
     mov    esi, eax
     and    esi, ecx
     mov    ebp, ecx
     not    ebp
     and    ebp, ebx
     or    esi, ebp
     lea    esi, dword ptr ds:[edx+esi+0C33707D6H]
     add    esi, dword ptr ds:[edi+38H]
     rol    esi, 9H
     add    esi, eax
     mov    edx, esi
     mov    esi, edx
     and    esi, ebx
     mov    ebp, ebx
     not    ebp
     and    ebp, eax
     or    esi, ebp
     lea    esi, dword ptr ds:[ecx+esi+0F4D50D87H]
     add    esi, dword ptr ds:[edi+0CH]
     rol    esi, 0EH
     add    esi, edx
     mov    ecx, esi
     mov    esi, ecx
     and    esi, eax
     mov    ebp, eax
     not    ebp
     and    ebp, edx
     or    esi, ebp

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -