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

📄 md5asm.cpp

📁 一份MD5算法的C代码和优化后的MD5汇编代码.
💻 CPP
字号:
#include "md5.h"
#include <stdio.h>
#include <windows.h>

void main()
{
	char all_chars[] = "0123456789";
	char tmp[128];
	int spacelen = strlen(all_chars);
	int pwlen = 8;
	char *tmpspace[8+1];
	int i;

	MD5_CTX context;
	DWORD dwTime = GetTickCount();

	memset(tmp, '\0', sizeof(tmp));

	tmpspace[0]=&all_chars[0];
	for (i=1; i<=pwlen; i++) {
		tmpspace[i]=0;
	}

	while(!tmpspace[pwlen]) {
		for (i=0; i<=pwlen; i++) {
			if(tmpspace[i] != 0)
				tmp[i]=*tmpspace[i];//构造一个新的字符串
			else 
				break;
		}
		
		MD5Init (&context);
		MD5Update (&context, (unsigned char*)tmp, strlen(tmp));
		MD5Final (&context);
		
		tmpspace[0]++;//指针移动到标准数组的下一个,注意此处的tmpspace[0]只是一个简单的指针而已
		
		for (i=0; i<pwlen; i++) {
			if (tmpspace[i] > &all_chars[spacelen -1]) {
				tmpspace[i] = &all_chars[0];
				if (tmpspace[i+1] !=0)
					tmpspace[i+1]++;
				else
					tmpspace[i+1] = &all_chars[0];
			}//if
		}//for
	}

	dwTime = GetTickCount() - dwTime;
	printf("spend time: %d seconds\n",dwTime/1000);
}

⌨️ 快捷键说明

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