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

📄 rmd160.asm

📁 ASM 多种hash模块,汇编源码 MD2,4,5 SHA 等多种加密算法 还有其他赠送内容
💻 ASM
📖 第 1 页 / 共 2 页
字号:
.686
.model flat,stdcall
option casemap:none

.const
pushad_size equ 8*4
pushad_eax equ 7*4
pushad_ecx equ 6*4
pushad_edx equ 5*4
pushad_ebx equ 4*4
pushad_esp equ 3*4
pushad_ebp equ 2*4
pushad_esi equ 1*4
pushad_edi equ 0*4

.data?
RMD160HashBuf db 64 dup(?)
RMD160Len dd ?
RMD160Index dd ?
RMD160Digest dd 5 dup(?)

.code
RMD160FF macro dwA, dwB, dwC, dwD, dwE, locX, rolS
	mov edi,dwB
    xor edi,dwC
    xor edi,dwD
    add dwA,locX
    add dwA,edi
	rol dwA,rolS
	add dwA,dwE
	rol	dwC,10
endm
RMD160GG macro dwA, dwB, dwC, dwD, dwE, locX, rolS, constAC
	mov	edi,dwC
	xor	edi,dwD
	and	edi,dwB
	xor	edi,dwD
	add	dwA,[locX]
	lea	dwA,[dwA+edi+constAC]
	rol	dwA,rolS
	add dwA,dwE
	rol	dwC,10
ENDM
RMD160HH macro dwA, dwB, dwC, dwD, dwE, locX, rolS, constAC
	mov edi,dwC
	xor edi,-1
	or edi,dwB
	xor edi,dwD
	add dwA,[locX]
	lea dwA,[dwA+edi+constAC]
	rol dwA,rolS
	add dwA,dwE
	rol	dwC,10
endm
RMD160II macro dwA, dwB, dwC, dwD, dwE, locX, rolS, constAC
	mov	edi,dwC
	xor	edi,dwB
	and	edi,dwD
	xor	edi,dwC
	add	dwA,[locX]
	lea	dwA,[dwA+edi+constAC]
	rol	dwA,rolS
	add dwA,dwE
	rol	dwC,10
endm
RMD160JJ macro dwA, dwB, dwC, dwD, dwE, locX, rolS, constAC
	mov	edi,dwD
	xor edi,-1
	or edi,dwC
	xor edi,dwB
	add dwA,[locX]	
	lea dwA,[dwA+edi+constAC]
	rol dwA,rolS
	add dwA,dwE
	rol dwC,10
ENDM

align dword
RMD160Transform proc
	pushad
	mov edi,offset RMD160Digest
	mov ebp,offset RMD160HashBuf
	mov eax,[edi+0*4]
	mov ebx,[edi+1*4]
	mov ecx,[edi+2*4]
	mov edx,[edi+3*4]
	mov esi,[edi+4*4]
	;==========================================================
	RMD160FF eax, ebx, ecx, edx, esi, dword ptr [ebp+00*4], 11
	RMD160FF esi, eax, ebx, ecx, edx, dword ptr [ebp+01*4], 14
	RMD160FF edx, esi, eax, ebx, ecx, dword ptr [ebp+02*4], 15
	RMD160FF ecx, edx, esi, eax, ebx, dword ptr [ebp+03*4], 12
	RMD160FF ebx, ecx, edx, esi, eax, dword ptr [ebp+04*4], 05
	RMD160FF eax, ebx, ecx, edx, esi, dword ptr [ebp+05*4], 08
	RMD160FF esi, eax, ebx, ecx, edx, dword ptr [ebp+06*4], 07
	RMD160FF edx, esi, eax, ebx, ecx, dword ptr [ebp+07*4], 09
	RMD160FF ecx, edx, esi, eax, ebx, dword ptr [ebp+08*4], 11
	RMD160FF ebx, ecx, edx, esi, eax, dword ptr [ebp+09*4], 13
	RMD160FF eax, ebx, ecx, edx, esi, dword ptr [ebp+10*4], 14
	RMD160FF esi, eax, ebx, ecx, edx, dword ptr [ebp+11*4], 15
	RMD160FF edx, esi, eax, ebx, ecx, dword ptr [ebp+12*4], 06
	RMD160FF ecx, edx, esi, eax, ebx, dword ptr [ebp+13*4], 07
	RMD160FF ebx, ecx, edx, esi, eax, dword ptr [ebp+14*4], 09
	RMD160FF eax, ebx, ecx, edx, esi, dword ptr [ebp+15*4], 08
	;======================================================================
	RMD160GG esi, eax, ebx, ecx, edx, dword ptr [ebp+07*4], 07, 05a827999h
	RMD160GG edx, esi, eax, ebx, ecx, dword ptr [ebp+04*4], 06, 05a827999h
	RMD160GG ecx, edx, esi, eax, ebx, dword ptr [ebp+13*4], 08, 05a827999h
	RMD160GG ebx, ecx, edx, esi, eax, dword ptr [ebp+01*4], 13, 05a827999h
	RMD160GG eax, ebx, ecx, edx, esi, dword ptr [ebp+10*4], 11, 05a827999h
	RMD160GG esi, eax, ebx, ecx, edx, dword ptr [ebp+06*4], 09, 05a827999h
	RMD160GG edx, esi, eax, ebx, ecx, dword ptr [ebp+15*4], 07, 05a827999h
	RMD160GG ecx, edx, esi, eax, ebx, dword ptr [ebp+03*4], 15, 05a827999h
	RMD160GG ebx, ecx, edx, esi, eax, dword ptr [ebp+12*4], 07, 05a827999h
	RMD160GG eax, ebx, ecx, edx, esi, dword ptr [ebp+00*4], 12, 05a827999h
	RMD160GG esi, eax, ebx, ecx, edx, dword ptr [ebp+09*4], 15, 05a827999h
	RMD160GG edx, esi, eax, ebx, ecx, dword ptr [ebp+05*4], 09, 05a827999h
	RMD160GG ecx, edx, esi, eax, ebx, dword ptr [ebp+02*4], 11, 05a827999h
	RMD160GG ebx, ecx, edx, esi, eax, dword ptr [ebp+14*4], 07, 05a827999h
	RMD160GG eax, ebx, ecx, edx, esi, dword ptr [ebp+11*4], 13, 05a827999h
	RMD160GG esi, eax, ebx, ecx, edx, dword ptr [ebp+08*4], 12, 05a827999h
	;======================================================================
	RMD160HH edx, esi, eax, ebx, ecx, dword ptr [ebp+03*4], 11, 06ed9eba1h
	RMD160HH ecx, edx, esi, eax, ebx, dword ptr [ebp+10*4], 13, 06ed9eba1h
	RMD160HH ebx, ecx, edx, esi, eax, dword ptr [ebp+14*4], 06, 06ed9eba1h
	RMD160HH eax, ebx, ecx, edx, esi, dword ptr [ebp+04*4], 07, 06ed9eba1h
	RMD160HH esi, eax, ebx, ecx, edx, dword ptr [ebp+09*4], 14, 06ed9eba1h
	RMD160HH edx, esi, eax, ebx, ecx, dword ptr [ebp+15*4], 09, 06ed9eba1h
	RMD160HH ecx, edx, esi, eax, ebx, dword ptr [ebp+08*4], 13, 06ed9eba1h
	RMD160HH ebx, ecx, edx, esi, eax, dword ptr [ebp+01*4], 15, 06ed9eba1h
	RMD160HH eax, ebx, ecx, edx, esi, dword ptr [ebp+02*4], 14, 06ed9eba1h
	RMD160HH esi, eax, ebx, ecx, edx, dword ptr [ebp+07*4], 08, 06ed9eba1h
	RMD160HH edx, esi, eax, ebx, ecx, dword ptr [ebp+00*4], 13, 06ed9eba1h
	RMD160HH ecx, edx, esi, eax, ebx, dword ptr [ebp+06*4], 06, 06ed9eba1h
	RMD160HH ebx, ecx, edx, esi, eax, dword ptr [ebp+13*4], 05, 06ed9eba1h
	RMD160HH eax, ebx, ecx, edx, esi, dword ptr [ebp+11*4], 12, 06ed9eba1h
	RMD160HH esi, eax, ebx, ecx, edx, dword ptr [ebp+05*4], 07, 06ed9eba1h
	RMD160HH edx, esi, eax, ebx, ecx, dword ptr [ebp+12*4], 05, 06ed9eba1h
	;======================================================================
	RMD160II ecx, edx, esi, eax, ebx, dword ptr [ebp+01*4], 11, 08f1bbcdch
	RMD160II ebx, ecx, edx, esi, eax, dword ptr [ebp+09*4], 12, 08f1bbcdch
	RMD160II eax, ebx, ecx, edx, esi, dword ptr [ebp+11*4], 14, 08f1bbcdch
	RMD160II esi, eax, ebx, ecx, edx, dword ptr [ebp+10*4], 15, 08f1bbcdch
	RMD160II edx, esi, eax, ebx, ecx, dword ptr [ebp+00*4], 14, 08f1bbcdch
	RMD160II ecx, edx, esi, eax, ebx, dword ptr [ebp+08*4], 15, 08f1bbcdch
	RMD160II ebx, ecx, edx, esi, eax, dword ptr [ebp+12*4], 09, 08f1bbcdch
	RMD160II eax, ebx, ecx, edx, esi, dword ptr [ebp+04*4], 08, 08f1bbcdch
	RMD160II esi, eax, ebx, ecx, edx, dword ptr [ebp+13*4], 09, 08f1bbcdch
	RMD160II edx, esi, eax, ebx, ecx, dword ptr [ebp+03*4], 14, 08f1bbcdch
	RMD160II ecx, edx, esi, eax, ebx, dword ptr [ebp+07*4], 05, 08f1bbcdch
	RMD160II ebx, ecx, edx, esi, eax, dword ptr [ebp+15*4], 06, 08f1bbcdch
	RMD160II eax, ebx, ecx, edx, esi, dword ptr [ebp+14*4], 08, 08f1bbcdch
	RMD160II esi, eax, ebx, ecx, edx, dword ptr [ebp+05*4], 06, 08f1bbcdch
	RMD160II edx, esi, eax, ebx, ecx, dword ptr [ebp+06*4], 05, 08f1bbcdch
	RMD160II ecx, edx, esi, eax, ebx, dword ptr [ebp+02*4], 12, 08f1bbcdch
	;======================================================================
	RMD160JJ ebx, ecx, edx, esi, eax, dword ptr [ebp+04*4], 09, 0a953fd4eh
	RMD160JJ eax, ebx, ecx, edx, esi, dword ptr [ebp+00*4], 15, 0a953fd4eh
	RMD160JJ esi, eax, ebx, ecx, edx, dword ptr [ebp+05*4], 05, 0a953fd4eh
	RMD160JJ edx, esi, eax, ebx, ecx, dword ptr [ebp+09*4], 11, 0a953fd4eh
	RMD160JJ ecx, edx, esi, eax, ebx, dword ptr [ebp+07*4], 06, 0a953fd4eh
	RMD160JJ ebx, ecx, edx, esi, eax, dword ptr [ebp+12*4], 08, 0a953fd4eh
	RMD160JJ eax, ebx, ecx, edx, esi, dword ptr [ebp+02*4], 13, 0a953fd4eh
	RMD160JJ esi, eax, ebx, ecx, edx, dword ptr [ebp+10*4], 12, 0a953fd4eh
	RMD160JJ edx, esi, eax, ebx, ecx, dword ptr [ebp+14*4], 05, 0a953fd4eh
	RMD160JJ ecx, edx, esi, eax, ebx, dword ptr [ebp+01*4], 12, 0a953fd4eh
	RMD160JJ ebx, ecx, edx, esi, eax, dword ptr [ebp+03*4], 13, 0a953fd4eh
	RMD160JJ eax, ebx, ecx, edx, esi, dword ptr [ebp+08*4], 14, 0a953fd4eh
	RMD160JJ esi, eax, ebx, ecx, edx, dword ptr [ebp+11*4], 11, 0a953fd4eh
	RMD160JJ edx, esi, eax, ebx, ecx, dword ptr [ebp+06*4], 08, 0a953fd4eh
	RMD160JJ ecx, edx, esi, eax, ebx, dword ptr [ebp+15*4], 05, 0a953fd4eh
	RMD160JJ ebx, ecx, edx, esi, eax, dword ptr [ebp+13*4], 06, 0a953fd4eh
	;======================================================================
	mov edi,offset RMD160Digest
	pushad;  parallel
	mov eax,[edi+0*4]
	mov ebx,[edi+1*4]
	mov ecx,[edi+2*4]
	mov edx,[edi+3*4]
	mov esi,[edi+4*4]
	;======================================================================

⌨️ 快捷键说明

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