当前位置: 首页 > news >正文

如何确保SWF文件Hash值相同

直到你需要对比2个swf是否有改动时,才会发现尽管as代码不做任何修改,每次重新编译出来的swf的hash值都会变。

在编写一个自动化部署及脚本时,需要对本次发布的文件和已近发布的文件进行hash效验,以此确认文件是否有过修改。就遇到了这个恼火的问题。

一番折腾后发现,Flex SDK 编译器在swf文件尾加入了一个41的tag类型 (ProductInfo),里面包含了编译时间导致。

问题找到了,好在Flex SDK是开源的,通过搜索定位相关功能在swfutils的模块里面,顺利找到了对应的源码进行修改,编译出class。更新到jar包。

经过修改后,把编译时间固定到2011年11月11日11时11分11秒,这样每次编译出的swf文件hash是完全一致的。

已在3.6.0和4.5.0两个版本中测试有效,尚未发现副作用。

 

顺便也提供修改后编译出的class文件,可以自行更新到Flex SDK 中的\lib\swfutils.jar 中。

Download: ProductInfo.class  ProductInfo.class (3.1 KiB, 18 hits)
确保SWF文件Hash值相同(hack edition)

 

BTW:需要注意的是在默认的metaData信息里也包含了日期,这个比较好处理,本身提供了自定义的参数,如指定下列编译参数既可实现修改。

-raw-metadata cbmland.com

相关文章:

  • 2017JavaScript框架战报——React分战场
  • 整理Java基础知识--Character类
  • 网上购物系统(Task005)——通用数据库访问函数集SqlHelper类
  • mysql 密码重置
  • 微软产品组里的十一类人
  • window10转Windows7
  • java生成缩略图
  • Docker 运行 jar
  • 在区块链上表白——使用C#将一句话放入比特币的区块链上
  • Powershell for循环语句示例
  • 关于C#中随机数的生成问题
  • 梦断代码阅读笔记01
  • JSON 之 SuperObject(11): TSuperTableString、TSuperAvlEntry
  • js中Object.create作用,什么时候用?和new是什么区别
  • 分享Silverlight/Windows8/WPF/WP7/HTML5一周学习导读(5月6日-5月12日)
  • canvas绘制圆角头像
  • CentOS 7 修改主机名
  • Docker容器管理
  • extjs4学习之配置
  • in typeof instanceof ===这些运算符有什么作用
  • js 实现textarea输入字数提示
  • Redis 中的布隆过滤器
  • UMLCHINA 首席专家潘加宇鼎力推荐
  • vuex 学习笔记 01
  • Webpack4 学习笔记 - 01:webpack的安装和简单配置
  • 阿里云容器服务区块链解决方案全新升级 支持Hyperledger Fabric v1.1
  • 对象引论
  • 高度不固定时垂直居中
  • 开发了一款写作软件(OSX,Windows),附带Electron开发指南
  • 如何优雅地使用 Sublime Text
  • 如何正确配置 Ubuntu 14.04 服务器?
  • 三栏布局总结
  • No resource identifier found for attribute,RxJava之zip操作符
  • 【云吞铺子】性能抖动剖析(二)
  • AI算硅基生命吗,为什么?
  • # 手柄编程_北通阿修罗3动手评:一款兼具功能、操控性的电竞手柄
  • #单片机(TB6600驱动42步进电机)
  • (动手学习深度学习)第13章 计算机视觉---微调
  • (附源码)计算机毕业设计ssm高校《大学语文》课程作业在线管理系统
  • (算法)前K大的和
  • (学习日记)2024.02.29:UCOSIII第二节
  • (转)Linux下编译安装log4cxx
  • .net 4.0发布后不能正常显示图片问题
  • .net core 依赖注入的基本用发
  • .NET Framework 3.5中序列化成JSON数据及JSON数据的反序列化,以及jQuery的调用JSON
  • .NET Standard 支持的 .NET Framework 和 .NET Core
  • .net wcf memory gates checking failed
  • .Net 垃圾回收机制原理(二)
  • .NET大文件上传知识整理
  • .NET下ASPX编程的几个小问题
  • /deep/和 >>>以及 ::v-deep 三者的区别
  • @RunWith注解作用
  • @SuppressLint(NewApi)和@TargetApi()的区别
  • [8481302]博弈论 斯坦福game theory stanford week 1
  • [Android学习笔记]ScrollView的使用