b2科目四模拟试题多少题驾考考爆了怎么补救
b2科目四模拟试题多少题 驾考考爆了怎么补救

C语言MD5源代码16、32位版本

电脑杂谈  发布时间:2020-04-27 09:18:09  来源:网络整理

怎么看软件的md5码_md5码查看器_c md5码

尝试了在Internet上找到的md5函数的实现,可以使用它,并对其进行了一些修改. 它支持16位和32位加密代码的输出并进行记录. 由三个文件组成,顺序如下:

头文件TL_MD5.h

[cpp]

#ifndefMD5_H#defineMD5_Htypedefstruct {unsignedintcount [2]; unsignedintstate [4]; unsignedcharbuffer [64];} MD5_CTX; #defineF(x,y,z)((x&y)|(〜x&z))#defineG(x,y,z)((x&z)|(y&〜z))#defineH(x ,y,z)(x ^ y ^ z)#defineI(x,y,z)(y ^(x |〜z))#defineROTATE_LEFT(x,n)((x << n)|(x >> (32-n)))#defineFF(a,b,c,d,x,s,ac)\ {\ a + = F(b,c,d)+ x + ac; \ a = ROTATE_LEFT(a,s); \ a + = b; \}#defineGG(a,b,c,d,x,s,ac)\ {\ a + = G(b,c,d)+ x + ac; \ a = ROTATE_LEFT(a,s); \ a + = b; \}#defineHH(a,b,c,d,x,s,ac)\ {\ a + = H(b,c,d)+ x + ac; \ a = ROTATE_LEFT(a,s); \ a + = b; \}#defineII(a,b,c,d,x,s,ac)\ {\ a + = I(b,c,d)+ x + ac; \ a = ROTATE_LEFT(a,s); \ a + = b; \} voidMD5Init(MD5_CTX *上下文); voidMD5Update(MD5_CTX *上下文,unsignedchar * input,unsignedintinputlen); void MD5Final(MD5_CTX *上下文,未签名字符摘要[16]); voidMD5Transform(unsignedintstate [4],unsignedcharblock [64]); voidMD5Encode(unsignedchar *输出,unsignedint *输入,unsignedintlen); voidMD5Decode(unsignedint *输出,unsignedchar *输入,unsignedintlen); #endif

C / C ++语言实现文件TL_MD5.c或TL_MD5.cpp

c md5码_md5码查看器_怎么看软件的md5码

[cpp]

#include <字符串. h> #include“ md5.h” unsignedcharPADDING [] = {0x80,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}; void MD5Init(MD5_CTX * context){context-> count [0] = 0; context-> count [1] = 0; context->状态[0] = 0x67452301; context-> state [1] = 0xEFCDAB89;上下文->状态[2] = 0x98BADCFE; context-> state [3] = 0x10325476;} voidMD5Update(MD5_CTX *上下文,unsignedchar *输入,unsignedintinputlen){unsignedinti = 0,索引= 0,partlen = 0;索引=(上下文->计数[0] >> 3)&0x3F; partlen = 64指数; context-> count [0] + = inputlen << 3; if(context->计数[0] <(inputlen << 3))context->计数[1] ++;上下文->计数[1] + = inputlen >> 29; if(inputlen> = partlen){memcpy(&上下文->缓冲区[index],输入,partlen); MD5Transform(上下文->状态,上下文->缓冲区); for(i = partlen; i + 64 <= inputlen; i + = 64)MD5Transform(上下文->状态,&输入[i]); index = 0;} else {i = 0;} memcpy(&context-> buffer [index],&input [i],inputlen-i);} voidMD5Final(MD5_CTX * context,unsignedchardigest [16]){unsignedintindex = 0 ,padlen = 0; unsignedcharbits [8]; index =(context-> count [0] >> 3)&0x3F; padlen =(索引<56)? (56指数):( 120指数); MD5Encode(bits,context-> count,8); MD5Update(上下文,PADDING,padlen); MD5Update(上下文,位,8); MD5Encode(摘要,上下文->状态,16);} voidMD5Encode(unsignedchar *输出,unsignedint *输入,unsignedintlen)(unsignedinti = 0,j = 0;而(j > 8)&0xFF;输出[j + 2] =(输入[i] >> 16)&0xFF;输出[j + 3] =(输入[i] >> 24)&0xFF; i ++; j + = 4;}} voidMD5Decode(unsignedint *输出,unsignedchar *输入,unsignedintlen){unsignedinti = 0,j = 0;而(j c md5码,unsignedcharblock [64]){unsignedinta =状态[0]; unsignedintb =状态[1]; unsignedintc =状态[2]; unsignedintd =状态[3]; unsignedintx [64]; MD5Decode(x,block,64); FF(a,b,c,d,x [0],7,0xd76aa478); FF(d,a,b,c,x [1],12, 0xe8c7b756); FF(c,d,a,b,x [2],17,0x242070db); FF(b,c,d,a,x [3],22,0xc1bdceee); FF(a,b,c ,d,x [4],7,0xf57c0faf); FF(d,a,b,c,x [5], 12,0x4787c62a); FF(c,d,a,b,x [6],17,0xa8304613); FF(b,c,d,a,x [7],22,0xfd469501); FF(a,b,c,d,x [8],7,0x698098d8); FF(d,a,b,c,x [9],12,0x8b44f7af); FF(c,d,a,b,x [10],17,0xffff5bb1); FF(b,c,d,a,x [11],22,0x895cd7be); FF(a,b,c,d,x [12],7,0x6b901122); FF(d,a,b,c,x [13],12,0xfd987193); FF(c,d,a,b,x [14],17,0xa679438e); FF(b,c,d,a,x [15],22,0x49b40821); GG(a,b,c,d,x [1],5,0xf61e2562); GG(d,a,b,c,x [6],9,0xc040b340); GG(c,d,a,b,x [11],14,0x265e5a51); GG(b,c,d,a,x [0],20,0xe9b6c7aa); GG(a,b,c,d,x [5],5,0xd62f105d); GG(d,a,b,c,x [10],9,0x2441453); GG(c,d,a,b,x [15],14,0xd8a1e681); GG(b,c,d,a,x [4],20,0xe7d3fbc8); GG(a,b,c,d,x [9],5,0x21e1cde6); GG(d,a,b,c,x [14],9,0xc33707d6); GG(c,d,a,b,x [3],14,0xf4d50d87); GG(b,c,d,a,x [8],20,0x455a14ed); GG(a,b,c,d,x [13],5,0xa9e3e905); GG(d,a,b,c,x [2],9,0xfcefa3f8); GG(c,d,a,b,x [7],14,0x676f02d9); GG(b,c,d,ac md5码,x [12],20,0x8d2a4c8a); HH(a,b,c,d,x [5],4,0xfffa3942); HH(d,a,b,c,x [8],11,0x8771f681); HH(c,d,a,b,x [11],16,0x6d9d6122); HH(b,c,d,a,x [14],23,0xfde5380c); HH(a,b,c,d,x [1],4,0xa4beea44); HH(d,a,b,c,x [4],11,0x4bdecfa9); HH(c,d,a,b,x [7],16,0xf6bb4 b60); HH(b,c,d,a,x [10],23,0xbebfbc70); HH(a,b,c,d,x [13],4,0x289b7ec6); HH(d,a,b,c,x [0],11,0xeaa127fa); HH(c,d,a,b,x [3],16,0xd4ef3085); HH(b,c,d,a,x [6],23,0x4881d05); HH(a,b,c,d,x [9],4,0xd9d4d039); HH(d,a,b,c,x [12],11,0xe6db99e5); HH(c,d,a,b,x [15],16,0x1fa27cf8); HH(b,c,d,a,x [2],23,0xac5665); II(a,b,c,d,x [0],6,0xf4292244); II(d,a,b,c,x [7],10,0x432aff97); II(c,d,a,b,x [14],15,0xab9423a7); II(b,c,d,a,x [5],21,0xfc93a039); II(a,b,c,d,x [12],6,0x655b59c3); II(d,a,b,c,x [3],10,0x8f0ccc92); II(c,d,a,b,x [10],15,0xffeff47d); II(b,c,d,a,x [1],21,0x85845dd1); II(a,b,c,d,x [8],6,0x6fa87e4f); II(d,a,b,c,x [15],10,0xfe2ce6e0); II(c,d,a,b,x [6],15,0xa3014314); II(b,c,d,a,x [13],21,0x4e0811a1); II(a,b,c,d,x [4],6,0xf7537e82); II(d,a,b,c,x [11],10,0xbd3af235); II(c,d,a,b,x [2],15,0x2ad7d2bb); II(b,c,d,a,x [9],21,0xeb86d391);状态[0] + = a;状态[1] + = b;状态[2] + = c;状态[3] + = d;}

md5功能测试代码文件

[cpp]

#include#include#include#include“ md5.h” intmain(intargc,char * argv []){MD5_CTXmd5; MD5Init(&md5);英蒂unsignedcharencrypt [] =“ admin”; // 21232f297a57a5a743894a0e4a801fc3unsignedchardecrypt [16; MD5Update(&md5,加密,strlen((char *)加密)); MD5Final(&md5,解密); printf(“加密前: %s \ n16位,加密后: ”,加密);对于(i = 4; i <12; i ++){printf(“ 02x”,解密[i]); // 02x需要添加%} printf(“ \ n加密前: %s \ n加密后n32位: ”,加密);对于(i = 0; i <16; i ++){printf(“ 02x”,解密[i]); // 02x需要添加%} getchar(); return0;}

怎么看软件的md5码_c md5码_md5码查看器

MD5加密常用字符

7a57a5a743894a0eadmin(16位MD5小写加密)

972130B75066C825ADMIN(16位MD5大写加密)

21232f297a57a5a743894a0e4a801fc3admin(32位MD5小写加密)

73ACD9A5972130B75066C82595A1FAE3ADMIN(32位MD5大写加密)

c md5码_怎么看软件的md5码_md5码查看器

49ba59abbe56e057123456(16位MD5小写加密)

e10adc3949ba59abbe56e057f20f883e123456(32位MD5小写加密)

469e80d32c0559f8admin888(16位MD5小写加密)

2299413865C28A35ADMIN888(16位MD5大写加密)

7fef6171469e80d32c0559f88b377245admin888(32位MD5小写加密)

md5码查看器_怎么看软件的md5码_c md5码

A1F63A962299413865C28A3593D359B0ADMIN888(32位MD5大写加密)

md5知识素养

MD5: 是一种特定的算法,是散列算法,散列算法,但非加密算法(因为没有密钥),可以用于加密(不可逆)

MD5是单向哈希函数. 单向散列函数的功能是将任意长度的数据散列为固定长度. 通常用于生成消息认证码等,可以与非对称算法一起用于数字签名.

参见标准

MD5似乎被中国一位教授破解了. 顺便说一下,我给你个地址. 有时应该很方便. : )


本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/jisuanjixue/article-190562-1.html

    相关阅读
      发表评论  请自觉遵守互联网相关的政策法规,严禁发布、暴力、反动的言论

      • 郑絪
        郑絪

        只是对于大多数人而言

      • 幽公
        幽公

        面子上都过得去

        • 伊纱贝拉
          伊纱贝拉

          但利用军事手段还是应该做为最后的选择

      热点图片
      拼命载入中...