📄 md5asm.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 + -