Наиболее практичный способ сравнения контрольных сумм md5

Это ожидается, по крайней мере, в конфигурации Solaris 10 и более ранних версий по умолчанию.

Ваша система использует устаревший алгоритм Unix crypt_unix , который действительно ограничивает количество используемых символов до восьми.

Это описано на странице руководства passwd :

Passwords must be constructed to meet the following requirements:

  Each password must have PASSLENGTH characters, where PASSLENGTH is  defined  in
  /etc/default/passwd  and  is  set  to  6. Setting PASSLENGTH to more than eight
  characters requires configuring policy.conf(4) with an algorithm that  supports
  greater than eight characters.

Поскольку этот алгоритм по существу устарел. Вам следует переключиться на что-то лучшее (доступные значения перечислены на странице руководства crypt.conf ), установив записи CRYPT_ALGORITHMS_DEPRECATE и CRYPT_DEFAULT в / etc / Файл security / policy.conf .

См. http://docs.oracle.com/cd/E19253-01/816-4557/concept-63/index.html

3
13.04.2017, 15:36
2 ответа

Это лучшее, что вы можете получить, поскольку вы используете нестандартные строки контрольной суммы md5 в файлах. Один лайнер ниже не требует копирования каких-либо значений из файлов, только само имя файла и файл, содержащий сумму md5

md5sum -c <<< $ (echo $ (cat jackson-annotations-2.8.4-javadoc.jar .md5) jackson-annotations-2.8.4-javadoc.jar)

0
27.01.2020, 21:30

Проблема в том, что на сайте, на который вы ссылаетесь, нет стандартных файлов md5.
В файлах Md5 отсутствует имя файла для каждой подписи. Подпись и имя файла должны быть восстановлены.

Как насчет:

md5sum -c <<<"$b"

Или:

md5sum -c <(echo $(<$a.md5) $a)

где $ a и $ b :

a="jackson-annotations-2.8.4.jar"
b="$(<jackson-annotations-2.8.4.jar.md5) jackson-annotations-2.8.4.jar"

Или, проще:

a=jackson-annotations-2.8.4.jar; b="$(<$a.md5) $a"

Все в одной строке с имена файлов (два решения):

a=jackson-annotations-2.8.4.jar; b="$(<$a.md5) $a"; md5sum -c <<<"$b"
a=jackson-annotations-2.8.4.jar; md5sum -c <(echo $(<$a.md5) $a)

Я использовал весь сценарий:

#!/bin/bash
a=jackson-annotations-2.8.4.jar
site=https://repo1.maven.org/maven2/com/fasterxml/jackson/core/jackson-annotations/2.8.4

wget -N "$site/$a"
wget -N "$site/$a.md5"

b="$(<$a.md5) $a"

md5sum -c - <<<"$b"
1
27.01.2020, 21:30

Теги

Похожие вопросы