PDA

Показать полную графическую версию : Сортировать хэши


Asdshka
10-02-2023, 16:09
Есть файл, который содержит строки по типу:
содержимое:хэш(условно)
содержимое:хэш(условно)
содержимое:содержимое
содержимое:хэш(условно)
содержимое:хэш(условно)

Надо каждую строку прогнать, узнать какой у неё хэш и записать в соответствующий файл "MD5.txt", "MD5:salt.txt", "MD5(APR).txt", "SHA1.txt", "SHA-224.txt", "SHA-256.txt", "SHA-256:salt.txt", "SHA-512.txt", "SHA-512:salt.txt", "Base64.txt", "osCommerce.txt", "MYSQL3.txt", "SHA1:salt.txt", "MYSQL5.txt", "phpBB3.txt","WordPress(MD5).txt", "MD5(Unix).txt", "Blowfish(Unix).txt", "Drupal7.txt", "OTHER.txt"

YuS_2
10-02-2023, 19:58
Asdshka, исходя из Вашего описания задачи:
Берем строку целиком:
"содержимое:хэш(условно)"
Вычисляем хэш по различным алгоритмам и записываем в разные файлы... или что здесь является строкой для вычисления хэш?

1. Какие именно алгоритмы интересуют?
2. Названия файлов мало о чем говорят - уточните, что это за файлы и что они должны означать?
3. В каком виде необходимо записывать полученный хэш?
4. Исходя из каких критериев распихивать хэши по этим, разным файлам?

Asdshka
11-02-2023, 11:39
1. Какие именно алгоритмы интересуют?
2. Названия файлов мало о чем говорят - уточните, что это за файлы и что они должны означать?
3. В каком виде необходимо записывать полученный хэш?
4. Исходя из каких критериев распихивать хэши по этим, разным файлам? »
Вы немного не так поняли, возможно я плохо объяснил. Попробую ещё раз. Хэшировать ничего не нужно.
Есть исходный файл со строками (text:hash), нужно взять каждую строку и определить к какому типу хэша относится то, что после ":".
Если к MD5, то записать в файл "MD5.txt", если ни к какому (иной хэш или вовсе не хэш), то в "OTHER.txt", если к SHA-1, то в "SHA1.txt" и так далее.

YuS_2
11-02-2023, 12:42
нужно взять каждую строку и определить к какому типу хэша относится то, что после ":". »
Это надо использовать что-то готовое или обратиться к фрилансерам... программу определения типа хэшей, написать не очень просто... вот пример (на питоне): https://github.com/SmeegeSec/HashTag/blob/master/HashTag.py
Проще вычислить хэш суммы (правда, набор алгоритмов не будет очень широким: SHA1, SHA256, SHA384, SHA512, MD5) и сравнить с имеющимся... но повторюсь: доступные алгоритмы, судя по всему, недостаточны для Вашей задачи, поэтому на другие можно рассчитывать, но только если использовать какие-либо готовые инструменты с поддержкой необходимых... встроенных и готовых к употреблению в cmd/powershell попросту нет.

Asdshka
13-02-2023, 20:02
но только если использовать какие-либо готовые инструменты »
В принципе, мне достаточно прогнать каждую строку по регуляркам с такими условиями:
в 1.txt: 32 символа (a-z / 0-9)
в 2.txt: 32 символа (a-z / 0-9) и далее после ":" идёт текст
в 3.txt: $asd$ + любыесимволы + $ + любыесимволы
в 4.txt: $asd$ + любыесимволы
в 5.txt: $H$ + любыесимволы (но не более 32)
в 6.txt: $S$ + любыесимволы + "." + любыесимволы
в 7.txt: $2a$ + любыесимволы + "." + любыесимволы
в 8.txt: если не подошло ни под какое условие

Только я дуб(
Но под остальные на основе этих примеров я думаю интуитивно смогу составить то, что надо

YuS_2
14-02-2023, 13:04
мне достаточно прогнать каждую строку по регуляркам с такими условиями: »
Да, у каждого типа хэшсуммы есть свои уникальные признаки (на их основе и построен скрипт на питоне), но их надо найти, уточнить, составить код, проверить... в общем, времени немало уйдет.
Но если достаточно условий, которые Вы описали, то можно что-нибудь придумать простое... только создайте пример исходного файла, для тестов и прикрепите его сюда.

Asdshka
14-02-2023, 22:03
только создайте пример исходного файла, для тестов и прикрепите его сюда. »
Да я уже плюс-минус разобрался:
$sourceFile = 'source.txt'

foreach ($line in Get-Content $sourceFile)
{
$hashType = ''

if ($line -match '^[0-9a-fA-F]{32}$')
{
$hashType = 'md5'
}
elseif ($line -match '^[0-9a-fA-F]{40}$')
{
$hashType = 'sha1'
}
elseif ($line -match '^(\$1\$[0-9a-zA-Z./]{0,8}\$[0-9a-zA-Z./]{22})$')
{
$hashType = 'md5crypt'
}
else
{
Add-Content -Path 'other.txt' -Value $line
}

if ($hashType -ne '')
{
Add-Content -Path "$hashType.txt" -Value $line
}
}

YuS_2
15-02-2023, 09:15
плюс-минус разобрался »
Ну, вот... вполне рабочий вариант...




© OSzone.net 2001-2012