如何在爆炸的耳朵上执行md5sum?

时间:2015-12-22 18:18:41

标签: java war ear md5sum

我工作场所中的大多数应用程序工件都是未爆炸的耳朵或战争文件。由于它们是简单的文件,因此很容易针对工件执行md5sum以进行比较。一小部分应用程序被部署为爆炸耳朵。作为目录,我无法对它执行简单的md5sum。我正在寻找一种替代方案 - 一种更灵活的实用程序,可以针对不同文件类型的工件或不同的技术执行哈希。

我曾经想到的是动态压缩ear或war目录(作为临时文件或管道)并针对此瞬态工件运行md5sum。这将是我的偏好,但我不确定如何做到这一点。任何建议或指导将不胜感激。

2 个答案:

答案 0 :(得分:0)

我的建议是使用MessageDigest类来创建哈希...请注意,此类中的各种update()方法只需bytebyte[]ByteBuffer并且不依赖于这些字节的来源。

所以我至少会考虑做什么 - 取决于效率和这个过程的运行速度 - 将依次遍历你的文件和update()你的MD5总和与每个文件的内容。继续更新直到最后,并使用最终digest()将其加满,以获得最终结果。

您必须绝对确保每次都以相同的顺序遍历文件,因为显然不同的顺序会导致不同的哈希值。

答案 1 :(得分:0)

一个想法是将目录压缩到管道,然后在管道上执行和md5sum:

jar -c <directory> | md5sum