为什么每次编译之后计算MD5都不相同

如题所述

建议你学习一下PE文件(通常的exe可执行文件就是一种PE文件)结构 其中由一个时间日期段 记录了PE文件被创建的时间 每一次编译的时间不同 因此此段的内容也不同 因此最终生成的文件内容有差异 继而md5码有异 附: PE部分结构C语言描述: typedef struct _IMAGE_FILE_HEADER { WORD Machine; WORD NumberOfSections; DWORD TimeDateStamp;//这里就是时间日期戳了 是链接器产生的时间 DWORD PointerToSymbolTable; DWORD NumberOfSymbols; WORD SizeOfOptionalHeader; WORD Characteristics; } IMAGE_FILE_HEADER, *PIMAGE_FILE_HEADER; 下图在一个具体的可知性文件中标示了此段的位置:
温馨提示:答案为网友推荐,仅供参考
相似回答