Как мне выполнить md5sum на взорванном ухе?

Большинство артефактов приложений на моем рабочем месте - это невзорвавшиеся файлы уха или войны. Поскольку это простые файлы, для сравнения легко выполнить md5sum для артефактов. Небольшое подмножество приложений развернуто как взорванные уши. Как каталоги, я не могу выполнить простой md5sum против него. Я ищу альтернативу - либо более гибкую утилиту, которая будет выполнять хеширование против артефактов разных типов файлов, либо другой техники.

У меня была мысль сжать каталог ear или war на лету (как временный файл или как канал) и запустить md5sum против этого временного артефакта. Это было бы моим предпочтением, но я не совсем уверен, как это сделать. Любые предложения или рекомендации будут с благодарностью.

2 ответа

Я бы предложил использовать класс MessageDigest для создания вашего хэша... обратите внимание, что различные update() методы этого класса просто берут byte или же byte[] или же ByteBuffer и не полагайтесь на то, откуда берутся эти байты.

Так что, по крайней мере, я бы подумал сделать - в зависимости от эффективности и того, как быстро этот процесс будет выполняться - это перебрать ваши файлы и update() Ваша сумма MD5 с содержанием каждого файла по очереди. Продолжайте обновление до конца и завершите его финальным digest() чтобы получить конечный результат.

Вам нужно быть абсолютно уверенным, что вы каждый раз просматриваете файлы в одном и том же порядке, поскольку очевидно, что другой порядок приведет к другому хешу.

Одной из идей было бы сжать каталог до канала, а затем выполнить и md5sum для канала:

jar -c <directory> | md5sum
Другие вопросы по тегам