Как найти файл от хеша?

Как я нахожу файл от данного Значения хэш-функции в Linux?

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

0
задан 2 December 2019 в 06:10

1 ответ

От моих предположений и понимания вопроса, Вы могли, вероятно, сделать это несколькими способами.

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

myHash="$1"
[[ $(sha256sum fileName | awk {'print $1'}) == "$myHash" ]] && echo "File found"

Упрощение этого с для цикла:

checkHash(){
myHash="$1" ## The hash of the file that you want to find
if (( $# == 1 )); then ## Must pass at least one argument
  ## Checking each file in the pwd
  for X in *; do
    if [[ -f $X ]]; then
        local hash=$( sha256sum $X | awk '{print $1}' )
        [[ "$myHash" == "$hash" ]] && { 
          echo "Hash matches for $X";
        }
    fi
  done
fi
}
checkHash "$@"

Однако это не просканировало бы хеш никаких файлов, запущенных с точки.

Иначе относился бы xargs и find команда.

Как @MelcomX указанный с find команда можно сделать это в одном лайнере, однако это могло бы занять много времени. Хорошая вещь об этом решении состоит в том, что можно передать часть хеша, и это все еще работало бы, так как это grepлуг.

find / -exec sha512sum {} + | grep YOURHASHHERE

Если это не то, что Вы искали, затем разработайте свой вопрос как @Eliah Kagan, предложенный в комментарии так, чтобы мы могли понять то, что Вы искали или рассматриваете принятие ответа.

4
ответ дан 21 December 2019 в 23:51

Другие вопросы по тегам:

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