Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Скриптовые языки администрирования Windows (http://forum.oszone.net/forumdisplay.php?f=102)
-   -   Сортировать хэши (http://forum.oszone.net/showthread.php?t=353024)

Asdshka 10-02-2023 16:09 3002854

Сортировать хэши
 
Есть файл, который содержит строки по типу:
содержимое:хэш(условно)
содержимое:хэш(условно)
содержимое:содержимое
содержимое:хэш(условно)
содержимое:хэш(условно)

Надо каждую строку прогнать, узнать какой у неё хэш и записать в соответствующий файл "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 3002861

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

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

Asdshka 11-02-2023 11:39 3002894

Цитата:

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

Вы немного не так поняли, возможно я плохо объяснил. Попробую ещё раз. Хэшировать ничего не нужно.
Есть исходный файл со строками (text:hash), нужно взять каждую строку и определить к какому типу хэша относится то, что после ":".
Если к MD5, то записать в файл "MD5.txt", если ни к какому (иной хэш или вовсе не хэш), то в "OTHER.txt", если к SHA-1, то в "SHA1.txt" и так далее.

YuS_2 11-02-2023 12:42 3002900

Цитата:

Цитата Asdshka
нужно взять каждую строку и определить к какому типу хэша относится то, что после ":". »

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

Asdshka 13-02-2023 20:02 3003093

Цитата:

Цитата YuS_2
но только если использовать какие-либо готовые инструменты »

В принципе, мне достаточно прогнать каждую строку по регуляркам с такими условиями:
в 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 3003155

Цитата:

Цитата Asdshka
мне достаточно прогнать каждую строку по регуляркам с такими условиями: »

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

Asdshka 14-02-2023 22:03 3003213

Цитата:

Цитата YuS_2
только создайте пример исходного файла, для тестов и прикрепите его сюда. »

Да я уже плюс-минус разобрался:
Код:

$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 3003231

Цитата:

Цитата Asdshka
плюс-минус разобрался »

Ну, вот... вполне рабочий вариант...


Время: 16:55.

Время: 16:55.
© OSzone.net 2001-