社区
C#
帖子详情
代码不变,为何每次编译,exe文件总不同
上海程序员3
2010-10-18 03:31:47
想知道原因和原理。
...全文
466
13
打赏
收藏
代码不变,为何每次编译,exe文件总不同
想知道原因和原理。
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
13 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
zcty520
2010-10-18
打赏
举报
回复
编译的时候MD5值,还跟每次编译时候的时间、环境版本等按一定内置规则有关系的。
wuyq11
2010-10-18
打赏
举报
回复
每次编译,都会有相关信息的变化如时间等属性
http://msdn.microsoft.com/zh-cn/library/k5532s8a.aspx
jeansy911
2010-10-18
打赏
举报
回复
如果你有兴趣请参看
pe文件:http://baike.baidu.com/view/1087038.html?wtp=tt
如果还有兴趣请下载一个
pe文件查看器,研究下你编译生成的同一个exe文件,看看到底是那个地址不同,我认为你点下F5键开始编译的时刻(DateTimeStamp)应该是影响MD5值产生的一个参;另外你用不同版本的.net framework编译你的源代码试一试。。
ZengHD
2010-10-18
打赏
举报
回复
编译出来的EXE不同了,可能里面加了编译时间之类的内容了
这个应该看编译原理而不是看MD5原理
上海程序员3
2010-10-18
打赏
举报
回复
我感觉是每次编译出现的exe文件中有部分内容变了,是exe本身有所不同,所以exe文件的md5结果才不同。
另外md5和日期没有关系的。md5并不是随机算法。
jeansy911
2010-10-18
打赏
举报
回复
[Quote=引用 4 楼 mowanglijiang 的回复:]
相同内容,md5值加密结果肯定是不变的,md5加密算法的原理我知道。
[/Quote]
编译的过程你是看不到的(有中间语言。。MD5的值计算有一个处决于你该次编译的日期datetime,有兴趣看看反编译。。。),那么结果就不会相同。
dai821
2010-10-18
打赏
举报
回复
[Quote=引用 3 楼 jeansy911 的回复:]
这是必然的。。。。。百度一下:md5加密算法
[/Quote]
就是这样的,因为加密算法
rainsnowclowd
2010-10-18
打赏
举报
回复
我記得在什麽地方看過,md5每次产生都会不同,是唯一的,你每次编译虽然看似同一个文件,可是它已经变了,被别的替换了,所以其md5也应该跟着一起替换了。 要不你把之前的文件拷贝走,在编译一个,比较下两个文件的md5是不是不一样了。
上海程序员3
2010-10-18
打赏
举报
回复
相同内容,md5值加密结果肯定是不变的,md5加密算法的原理我知道。
jeansy911
2010-10-18
打赏
举报
回复
[Quote=引用 2 楼 mowanglijiang 的回复:]
md5值总是不同
[/Quote]
这是必然的。。。。。百度一下:md5加密算法
上海程序员3
2010-10-18
打赏
举报
回复
md5值总是不同
ireenter
2010-10-18
打赏
举报
回复
什么不同了?
如果你发现你
编译
的
exe
总
是旧版
exe
的输出结果,原因在于.zip
linux下你发现你
编译
的出来的
exe
却
总
是之前旧版的
exe
,见鬼了! 原 因 在 于. . .
如何确定两个 时间
不同
的
exe
(或DLL),其对应的源
代码
有没有改动?同一源码,
编译
两次,其MD5值不一样!【vc++/dumpbin】
一般情况,我们确定 两个
文件
内容是否一样,一般是看其MD5值是否一样。 ` 但是 同一套VC++
代码
,不作任何改动的情况下,
每次
生成的
exe
(或DLL),其MD5值都是
不同
的。 这种情况下,怎么确定其对应的源码是一样的(没有作改动)? 一种解决方案,用工具:dumpbin 如果你机子上装了 VS,一般都会有 dumpbin 如果装了多个VS版本,可以选一个版本最高的VS,其目录下的dumpbin(如64位目录下的),加入环境变量,方便以后经常使用。 命令格式: dumpbin /disasm 我的
latex重新
编译
不变
,需要删除aux
文件
latex重新
编译
不变
,需要删除aux
文件
webpack在
编译
机
编译
每次
hash值不一样问题探索
很奇怪我的vue项目,在本地用webpack多次
编译
,
代码
不变
的情况下,
每次
编译
产出的js等静态资源的hash值都是一样的,但是提交到
编译
机上面
编译
就是不一样。 现在来研究一下原因。 起初是怀疑是版本号的问题,所以把package.json的node_modules里面的模块版本号都给写死了。但是不顶用。两次
编译
还是hash值不一样。 怀疑是
编译
机
每次
不一样的问题,因为公司用的是
编译
集群,
每次
给你分配的机器可能不一样,然后就申请固定的机器来
编译
,结果
编译
hash还是不一样 接着怀疑是node-s
Java
编译
(二) Java前端
编译
:Java源
代码
编译
成Class
文件
的过程
在上篇文章中了解到了Java前端
编译
JIT
编译
AOT
编译
各有什么优点和缺点,下面详细了解Java前端
编译
:Java源
代码
编译
成Class
文件
的过程;我们从官方JDK提供的前端
编译
器javac入手,用javac
编译
一些测试程序,调试跟踪javac源码,看看javac整个
编译
过程是如何实现的。
C#
111,076
社区成员
642,572
社区内容
发帖
与我相关
我的任务
C#
.NET技术 C#
复制链接
扫一扫
分享
社区描述
.NET技术 C#
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
让您成为最强悍的C#开发者
试试用AI创作助手写篇文章吧
+ 用AI写文章