資源簡介
c語言,vc6.0編譯通過,輸入文件名路徑,就可以計算出文件的md5值,效率還可以的

代碼片段和文件信息
#include
#include
#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)))
#define?RL(x?y)?(((x)?<(y))?|?((x)?>>?(32?-?(y))))??//x向左循環移y位
#define?PP(x)?(x<<24)|((x<<8)&0xff0000)|((x>>8)&0xff00)|(x>>24)??//將x高低位互換例如PP(aabbccdd)=ddccbbaa
#define?FF(a?b?c?d?x?s?ac)?a?=?b?+?(RL((a?+?F(bcd)?+?x?+?ac)s))
#define?GG(a?b?c?d?x?s?ac)?a?=?b?+?(RL((a?+?G(bcd)?+?x?+?ac)s))
#define?HH(a?b?c?d?x?s?ac)?a?=?b?+?(RL((a?+?H(bcd)?+?x?+?ac)s))
#define?II(a?b?c?d?x?s?ac)?a?=?b?+?(RL((a?+?I(bcd)?+?x?+?ac)s))
unsigned?ABCDabcdilenflen[2]x[16];???//i臨時變量len文件長flen[2]為64位二進制表示的文件初始長度
char?filename[200];???//文件名
FILE?*fp;
void?md5(){?????????????????//MD5核心算法供64輪
??a=Ab=Bc=Cd=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?0xfd469501);?/**//*?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);?/**//*?28?*/
??GG?(a?b?c?d?x[13]??5?0xa9e3e905);?/**//*?29?*/
??GG?(d?a?b?c?x[?2]??9?0xfcefa3f8);?/**//*?30?*/
??GG?(c?d?a?b?x[?7]?14?0x676f02d9);?/**//*?31?*/
??GG?(b?c?d?a?x[12]?20?0x8d2a4c8a);?/**//*?32?*/
??/**//*?Round?3?*/
??HH?(a?b?c?d?x[?5]??4?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);?/
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件?????176179??2013-05-11?12:58??md5\Debug\md5.exe
?????文件?????178212??2013-05-11?12:58??md5\Debug\md5.ilk
?????文件??????22130??2013-05-11?12:58??md5\Debug\md5.obj
????I.A....????182124??2013-05-11?12:58??md5\Debug\md5.pch
?????文件?????353280??2013-05-11?12:58??md5\Debug\md5.pdb
?????文件??????33792??2013-05-11?12:58??md5\Debug\vc60.idb
?????文件??????45056??2013-05-11?12:58??md5\Debug\vc60.pdb
?????文件???????5984??2013-05-09?20:36??md5\md5.c
?????文件???????3363??2013-05-11?12:58??md5\md5.dsp
?????文件????????529??2013-05-11?12:58??md5\md5.dsw
?????文件??????41984??2013-05-11?12:58??md5\md5.ncb
?????文件??????48640??2013-05-11?12:58??md5\md5.opt
?????文件????????240??2013-05-11?12:58??md5\md5.plg
?????目錄??????????0??2013-05-11?12:58??md5\Debug
?????目錄??????????0??2013-05-11?12:58??md5
-----------?---------??----------?-----??----
??????????????1091513????????????????????15
- 上一篇:操作系統實習:動態分區分配C++實現
- 下一篇:圖的實現:鄰接表
評論
共有 條評論