Форум русскоязычного сообщества Ubuntu


Получить помощь и пообщаться с другими пользователями Ubuntu можно
на irc канале #ubuntu-ru в сети Freenode
и в Jabber конференции ubuntu@conference.jabber.ru

Автор Тема: Как зашифровать sha256 все строки из файла?  (Прочитано 942 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн napulsnik

  • Автор темы
  • Новичок
  • *
  • Сообщений: 6
    • Просмотр профиля
Здравствуйте. Есть текстовый файл с множеством строк. Нужно каждую строку перевести в формат sha256. Как это лучше сделать?

Оффлайн ReNzRv

  • Старожил
  • *
  • Сообщений: 2628
    • Просмотр профиля
Re: Как зашифровать sha256 все строки из файла?
« Ответ #1 : 16 Август 2017, 21:53:13 »
Код: Bash
  1. while read l; do sha256sum <<<"$l" | awk '{print $1}'; done < файл

Оффлайн napulsnik

  • Автор темы
  • Новичок
  • *
  • Сообщений: 6
    • Просмотр профиля
Re: Как зашифровать sha256 все строки из файла?
« Ответ #2 : 16 Август 2017, 22:01:13 »
Код: Bash
  1. while read l; do sha256sum <<<"$l" | awk '{print $1}'; done < файл

Ввожу в командную строку:

# while read l; do sha256sum <<<"$l" | awk '{print $1}'; done < keys.txt
1857017c9249136e642e23f3ca500d45391437907c9e6dc3f7ff5f60f1d9d362

В файле много строк.

Оффлайн ecc83

  • Старожил
  • *
  • Сообщений: 2084
  • Lubuntu 16.04 LTS
    • Просмотр профиля
Re: Как зашифровать sha256 все строки из файла?
« Ответ #3 : 16 Август 2017, 22:08:28 »
napulsnik, ну всё верно, всё работает. Что нужно ещё?

Если хочешь результат в другой файл сохранить, то в конце строки добавь:

while read l; do sha256sum <<<"$l" | awk '{print $1}'; done < keys.txt > newfile.txt

Оффлайн ReNzRv

  • Старожил
  • *
  • Сообщений: 2628
    • Просмотр профиля
Re: Как зашифровать sha256 все строки из файла?
« Ответ #4 : 16 Август 2017, 22:16:50 »
В файле много строк.
wc -l keys.txt?

Оффлайн napulsnik

  • Автор темы
  • Новичок
  • *
  • Сообщений: 6
    • Просмотр профиля
Re: Как зашифровать sha256 все строки из файла?
« Ответ #5 : 16 Август 2017, 22:35:47 »
Спасибо, все работает. Строк показывало 1 почему-то. Последнюю строку не учитывало.

Оффлайн ReNzRv

  • Старожил
  • *
  • Сообщений: 2628
    • Просмотр профиля
Re: Как зашифровать sha256 все строки из файла?
« Ответ #6 : 16 Август 2017, 22:43:12 »
Последнюю строку не учитывало.
Если строка не имеет в конце символ новой строки "\n", то wc ее не считает.

Оффлайн napulsnik

  • Автор темы
  • Новичок
  • *
  • Сообщений: 6
    • Просмотр профиля
Re: Как зашифровать sha256 все строки из файла?
« Ответ #7 : 16 Август 2017, 22:57:13 »
Спасибо, буду знать.

Оффлайн ReNzRv

  • Старожил
  • *
  • Сообщений: 2628
    • Просмотр профиля
Re: Как зашифровать sha256 все строки из файла?
« Ответ #8 : 16 Август 2017, 23:07:47 »
Вот еще вариант, но лучше:
Код: Bash
  1. perl -M'Digest::SHA qw(sha256_hex)' -ne 'print sha256_hex($_), "\n"' файл
его так же можно использовать в конвеере "|".

И если не секрет зачем это нужно? В курсе что обратно из хэша строку не получить?

Оффлайн napulsnik

  • Автор темы
  • Новичок
  • *
  • Сообщений: 6
    • Просмотр профиля
Re: Как зашифровать sha256 все строки из файла?
« Ответ #9 : 16 Август 2017, 23:33:57 »
Вот еще вариант, но лучше:
Код: Bash
  1. perl -M'Digest::SHA qw(sha256_hex)' -ne 'print sha256_hex($_), "\n"' файл
его так же можно использовать в конвеере "|".

И если не секрет зачем это нужно? В курсе что обратно из хэша строку не получить?

Попробуйте создать файл из 2-х одинаковых строк. У них будет разный хэш :-) Символ переноса строки тоже хэшируется. Поэтому правильный хэш будет только у самой последней строчки. Можно как-то не хэшировать перенос строки?

Оффлайн ReNzRv

  • Старожил
  • *
  • Сообщений: 2628
    • Просмотр профиля
Re: Как зашифровать sha256 все строки из файла?
« Ответ #10 : 16 Август 2017, 23:43:52 »
Можно:
Код: Bash
  1. perl -M'Digest::SHA qw(sha256_hex)' -ne 'chomp; print sha256_hex($_), "\n"' файл

Оффлайн napulsnik

  • Автор темы
  • Новичок
  • *
  • Сообщений: 6
    • Просмотр профиля
Re: Как зашифровать sha256 все строки из файла?
« Ответ #11 : 17 Август 2017, 00:02:36 »
Можно:
Код: Bash
  1. perl -M'Digest::SHA qw(sha256_hex)' -ne 'chomp; print sha256_hex($_), "\n"' файл
Супер. Теперь все работает. Спасибо большое.

Оффлайн ReNzRv

  • Старожил
  • *
  • Сообщений: 2628
    • Просмотр профиля
Re: Как зашифровать sha256 все строки из файла?
« Ответ #12 : 17 Август 2017, 00:48:18 »
Ставь "Решено"

 

Страница сгенерирована за 0.21 секунд. Запросов: 22.