混淆纯c语言实现md5算法(MD5 algorithm implemented in pure C language)

c md5  时间:2021-01-27  阅读:()

纯c语言实现md5算法MD5 algorithm implemented in pure Cl anguage

Here' s the code

Baidu needs points. I upload an integral that doesn't need anintegral.

/ / pure to delete this comment can be confused with.#include<stdio.h>

#define F (x, y, z) (( (x) & (y) ) | ( (~x) & (z)))

#define G (x, y, z) (( (x) & (z) ) | ( (y) & (~z)))

#define H (x, y, z) ((x) ^ (y) ^ (z) )

#define I (x, y, z) ((y) ^ ( (x) | (~z)) )

/ / pure to delete this comment can be confused with.#define RL (x, y) (((x) , (y) ( | ) (x) "(32 - (y)) )) //x y leftshift

#def ine PP (x) (x<<24) | ((x<<8) &0xff0000) | ((x>>8) &0xff00)| (x>>24) / / x high and low swap, such as PP (aabbccdd)=ddccbbaa

#def ine FF (a, B, C, D, x, s, AC) a = B + (RL ((a + F (B, C,d) + X + AC) , s) )

#def ine GG (a, B, C, D, x, s, AC) a = B + (RL ((a + G (B, C,d) + X + AC) , s) )

#def ine HH (a, B, C, D, x, s, AC) a = B + (RL ((a + H (B, C,d) + X + AC) , s) )

#define II (a, B, C, D, x, s, AC) a = B + (RL ((a + I (B, C,d) + X + AC) , s) )

Unsigned A, B, C, D, a, B, C, D, I, len, flen[2], x[16] ; //itemporary variable, len file length, flen[2] is 64 bit binaryrepresentation of the initial length of the file

Char filename[200] ; / / f ile name

FILE *fp;

/ / pure to delete this comment can be confused with.Void MD5 () {//MD5 core algorithm for the 64 round

A=A, b=B, c=C, d=D;

/**//* Round * 1

FF (a, B, C, D, x[, 0] , 7, 0xd76aa478) ; /**//* 1.

FF (D, a, B, C, x[, 1] , 12, 0xe8c7b756) ; /**//* 2.

FF (C, D, a, B, x[, 2] , 17, 0x242070db) ; /**//* 3.

FF (B, C, D, a, x[, 3] , 22, 0xc1bdceee) ; /**//* 4.FF (a, B, C, D, x[, 4] , 7, 0xf57c0faf) ; /**//* 5.FF (D, a, B, C, x[, 5] , 12, 0x4787c62a) ; /**//* 6.FF (C, D, a, B, x[, 6] , 17, 0xa8304613) ; /**//* 7.FF (B, C, D, a, x[, 7] , 22, 0xf d469501) ; /**//* 8.FF (a, B, C, D, x[, 8] , 7, 0x698098d8) ; /**//* 9.FF (D, a, B, C, x[, 9] , 12, 0x8b44f7af) ; /**//* 10.FF (C, D, a, B, x[10], 17, 0xffff5bb1) ; /**//* 11.FF (B, C, D, a, x[11], 22, 0x895cd7be) ; /**//* 12.FF (a, B, C, D, x[12], 7, 0x6b901122) ; /**//* 13.FF (D, a, B, C, x[13], 12, 0xfd987193) ; /**//* 14.FF (C, D, a, B, x[14], 17, 0xa679438e) ; /**//* 15.FF (B, C, D, a, x[15], 22, 0x49b40821) ; /**//* 16./**//* Round * 2

GG (a, B, C, D, x[, 1] , 5, 0xf61e2562) ; /**//* 17.

GG (D, a, B, C, x[, 6] , 9, 0xc040b340) ; /**//* 18.

GG (C, D, a, B, x[11], 14, 0x265e5a51) ; /**//* 19.

GG (B, C, D, a, x[, 0] , 20, 0xe9b6c7aa) ; /**//* 20.

GG (a, B, C, D, x[, 5] , 5, 0xd62f105d) ; /**//* 21.

GG (D, a, B, C, x[10], 9, 0x02441453) ; /**//* 22.

GG (C, D, a, B, x[15], 14, 0xd8a1e681) ; /**//* 23.

GG (B, C, D, a, x[, 4] , 20, 0xe7d3fbc8) ; /**//* 24.

GG (a, B, C, D, x[9], 5) ,

0x21e1cde6) ; / * * / / * * / 25

GG (D, a, B, C, X [14] , 9, 0xc33707d6) ; / * * / / * 26 * /GG (C, D, a, B, X [3], 14, 0xf4d50d87) ; / * * / / * 27 * /GG (B, C, D, a, X [8] , 20, 0x455a14ed) ; / * * / / * * / 28GG (A, B, C, D, X [13] , 5, 0xa9e3e905) ; / * * / / * * / 29GG (D, a, B, C, X [2], 9, 0xfcefa3f8) ; / * * / / * * / 30GG (C, D, a, B, X [7], 14, 0x676f02d9) ; / * * / / * * / 31GG (B, C, D, a, X [12] , 20, 0x8d2a4c8a) ; / * * / / * * / 32

/ * * / / * * / Round 3

Hh (A, B, C, D, X [4, 5], 0xfffa3942) ; / * * / / * 33 * /Hh (D, a, B, C, X [8], 11, 0x8771f681) ; / * * / / * 34 * /Hh (C, D, a, B, X [11] , 16, 0x6d9d6122) ; / * * / / * 35 * /Hh (B, C, D, a, x] [14, 23, 0xfde5380c) ; / * * / / * 36 * /Hh (A, B, C, D, X [1], 4, 0xa4beea44) ; / * * / / * * / 37Hh (D, a, B, C, X [4], 11, 0x4bdecfa9) ; / * * / / * 38 * /Hh (C, D, a, B, X [7], 16, 0xf6bb4b60) ; / * * / / * * / 39Hh (B, C, D, a, X [10] , 23, 0xbebfbc70) ; / * * / / * 40 * /Hh (A, B, C, D, X [13] , 4, 0x289b7ec6) ; / * * / / * * / 41Hh (D, a, B, C, X [0], 11, 0xeaa127fa) ; / * * / / * * / 42Hh (C, D, a, B, X [3], 16, 0xd4ef3085) ; / * * / / * * / 43Hh (B, C, D, a, x] [6, 23, 0x04881d05) ; / * * / / * * / 44Hh (A, B, C, D, X [9], 4, 0xd9d4d039) ; / * * / / * 45 * /Hh (D, a, B, C, X [11, 12], 0xe6db99e5) ; / * * / / * 46 * /

Hh (C, D, a, B, x] [15, 16, 0x1fa27cf8) ; / * * / / * 47 * /Hh (B, C, D, a, X [2], 23, 0xc4ac5665) ; / * * / / * * / 48/ /纯是为了混淆用,删除本注释即可

/ * * / / * * / 4 round

I I (A, B, C, D, X [0], 6, 0xf4292244) ; / * * / / * * / 49I I (D, a, B, C, x] [7, 10, 0x432aff97) ; / * * / / * 50 * /II (C, D, a, B, X [14] , 15, 0xab9423a7) ; / * * / / * * / 51(B, C, D, a, X [5], 21, 0xfc93a039) ; / * * / / * 52 * /II (A, B, C, D, X [12] , 6, 0x655b59c3) ; / * * / / * * /II (D, a, B, C, X [3], 10, 0x8f0ccc92) ; / * * / / * * / 54II (C, D, a, B, X [10] , 15, 0xffeff47d) ; / * * / / * 55 * /(B, C, D, a, X [1], 21, 0x85845dd1) ; / * * / / * * / 56II (A, B, C, D, X [8], 6, 0x6fa87e4f) ; / * * / / * * / 57II (D, a, B, C, X [15] , 10, 0xfe2ce6e0) ; / * * / / * * / 58I I (C, D, a, B, X [6], 15, 0xa3014314) ; / * * / / * * / 59(B, C, D, a, X [13] , 21, 0x4e0811a1) ; / * * / / * 60 * /

II (A, B, C, D, X [4], 6, 0xf7537e82) ; / * * / / * * / 61I I (D, a, B, C, X [10, 11], 0xbd3af235) ; / * * / / * 62 * /II (C, D, a, B, X [2], 15, 0x2ad7d2bb) ; / * * / / * * / 63(B, C, D, a, x] [9, 21, 0xeb86d391) ; / * * / / * * / 64A + = a;

B + = B;

C + = C;

D = D +;

/ /纯是为了混淆用,删除本注释即可

}

/ /纯是为了混淆用,删除本注释即可

/ /纯是为了混淆用,删除本注释即可

Main() {

While (1) {// pure to confuse, the notes can be deletedPrintf ("Input file:") ;

Gets (filename) ; // get function, avoid scanf segmentation inspace data,

If (filename[0]==34) f ilename[strlen (filename) -1]=0, strcpy(filename, f ilename+1) ; / / support file drag, but will morethan double quotes, here is the double quotes excess

If (! StrCmp (f ilename, exit)) exit (0) ; / / input exit exit(if! (fp=fopen (filename, RB))) {printf ("Can not open thisfile \n!") ; continue; } / / in binary file open

Fseek (FP, 0, SEEK_END) ; // the file pointer to the end of thefile

If ( (len=ftell (FP)) ==-1) {printf ("Sorry! Can not calculatefiles which larger than 2 GB! \n") ; Fclose (FP) ; continue; }//ftell function returns long, the maximum is 2GB, beyond thereturn -1

Rewind (FP) ; / / reset the file pointer to the file headerA=0x67452301, B=0xefcdab89, C=0x98badcfe, D=0x10325476; / /initialize link variables.

Flen[1]=len/0x20000000; //flen unit is bit

Flen[0]= (len%0x20000000) *8;

Memset (x, 0,64) ; / / initialize the X array for the 0

FREAD (&x, 4, 16, FP) ; / / to 4 bytes for a group, read 16 setsof data

For (i=0; i<len/64; i++) {// cycle operation until the end ofthe file

(MD 5) ;

Memset (x, 0,64) ;

F REA D (&x, 4, 16, FP) ;

}

( (char*) x [len%64]=128) ; // end of file 1, 0, 128 or 10000000binary

If (len%64>55) MD5 () , memset (x, 0,64) ;

Memcpy (x+14, flen, 8) ; // the end of the file is added to theoriginal file length bit

(MD 5) ;

Fclose (FP) ;

Printf ("MD5 Code:%08x%08x%08x%08x\n", PP (A) , PP (B) , PP (C) ,PP (D)) ; / / high and low output resistance

}

易速互联月付299元,美国独立服务器促销,加州地区,BGP直连线路,10G防御

易速互联怎么样?易速互联是国人老牌主机商家,至今已经成立9年,商家销售虚拟主机、VPS及独立服务器,目前商家针对美国加州萨克拉门托RH数据中心进行促销,线路采用BGP直连线路,自带10G防御,美国加州地区,100M带宽不限流量,月付299元起,有需要美国不限流量独立服务器的朋友可以看看。点击进入:易速互联官方网站美国独立服务器优惠套餐:RH数据中心位于美国加州、配置丰富性价比高、10G DDOS免...

Spinservers:美国独立服务器(圣何塞),$111/月

spinservers是Majestic Hosting Solutions,LLC旗下站点,主营美国独立服务器租用和Hybrid Dedicated等,spinservers这次提供的大硬盘、大内存服务器很多人很喜欢。TheServerStore自1994年以来,它是一家成熟的企业 IT 设备供应商,专门从事二手服务器和工作站业务,在德克萨斯州拥有40,000 平方英尺的仓库,库存中始终有数千台...

极光KVM美国美国洛杉矶元/极光kvmCN7月促销,美国CN2 GIA大带宽vps,洛杉矶联通CUVIP,14元/月起

极光KVM怎么样?极光KVM本月主打产品:美西CN2双向,1H1G100M,189/年!在美西CN2资源“一兆难求”的大环境下,CN2+大带宽 是很多用户的福音,也是商家实力的象征。目前,极光KVM在7月份的促销,7月促销,美国CN2 GIA大带宽vps,洛杉矶联通cuvip,14元/月起;香港CN2+BGP仅19元/月起,这次补货,机会,不要错过了。点击进入:极光KVM官方网站地址极光KVM七月...

c md5为你推荐
迈腾和帕萨特哪个好新帕萨特怎么样 迈腾和帕萨特哪个好宝来和朗逸哪个好朗逸 和 宝来 哪个好?ps软件哪个好怎么ps啊,哪个软件好手机管家哪个好手机管理软件哪个好用手机杀毒哪个好手机杀毒软件哪个好 五大手机安全软件杀毒大比拼海克斯皮肤哪个好lol100块抽11次的海克斯宝箱值得买吗雅思和托福哪个好考托福和雅思哪个好考 急。。。。。东莞电信宽带东莞电信宽带资费问题。急!上海dns服务器地址上海市青浦区的电信DNS地址是多少360云盘同步版360云盘 单向同步 与 双向同步 的区别?
com域名注册 域名停靠 个人注册域名 jsp主机 themeforest 国外服务器网站 godaddy续费优惠码 gomezpeer 60g硬盘 英语简历模板word 免费smtp服务器 铁通流量查询 福建天翼加速 admit的用法 服务器干什么用的 福建铁通 鲁诺 怎么建立邮箱 跟踪路由命令 重庆联通服务器托管 更多