zoukankan      html  css  js  c++  java
  • 如何确保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
  • 相关阅读:
    Paperfolding HDU
    I
    2020年8月11日第一次组队训练
    2018ICPC南京I. Magic Potion
    【贪心】纪念品分组
    【贪心】删数问题
    【排序】排名
    小X与队列
    B.T.B.F.
    2018浙江理工大学迎新赛——决赛
  • 原文地址:https://www.cnblogs.com/shihao/p/2483602.html
Copyright © 2011-2022 走看看