|
0 / 0 / 0
Регистрация: 10.03.2021
Сообщений: 9
|
|
Алгоритм хеширования SHA25610.03.2021, 20:07. Показов 1719. Ответов 16
Помогите разобраться Например есть случайная строка из 64 символов, символы это цифры 0-9 и буквы a-f. Что делает алгоритм хеширования sha256 с данной строкой? Если можно обясните шаг за шагом в подробностях сам алгоритм! Можно ли сделать обратную функцию к данной строке? Например почему из строки
ad3793e762a24abdb810994f95545ad0dab7f60c 7ef02b59c391bf68daa797c5 выходит 691a4cea3f19bcc9de50ae86e02915b5b3ea5f13 e97520153270d91cf04d8ef9 Кто-то может обяснить понятным языком как с такого выходит такое? :-)
0
|
|
| 10.03.2021, 20:07 | |
|
Ответы с готовыми решениями:
16
Как определить алгоритм хеширования? Python скрипт генерации адресов BTC + Opencl в питоне для ускорения SHA256 , Scrypt , SHA256 Алгоритм хеширования |
|
461 / 201 / 80
Регистрация: 14.12.2017
Сообщений: 433
|
|
| 13.03.2021, 00:30 | |
|
0
|
|
|
0 / 0 / 0
Регистрация: 10.03.2021
Сообщений: 9
|
|
| 13.03.2021, 16:53 [ТС] | |
|
Та я читал но ничего не понял на моем примере показали бы что и как берется...
0
|
|
|
461 / 201 / 80
Регистрация: 14.12.2017
Сообщений: 433
|
||
| 13.03.2021, 21:41 | ||
|
https://ru.wikipedia.org/wiki/... :SHA-2.svg повторяется 64 раза. Вам расписать все 512 значений?
1
|
||
|
0 / 0 / 0
Регистрация: 10.03.2021
Сообщений: 9
|
|
| 13.03.2021, 22:11 [ТС] | |
|
хотя бы то что повторяется 64 раза поясните один раз... там какой то не понятный рисунок со стрелками и буквами :-)
0
|
|
|
461 / 201 / 80
Регистрация: 14.12.2017
Сообщений: 433
|
||
| 13.03.2021, 23:39 | ||
|
Для
691a4cea3f19bcc9de50ae86e02915b5b3ea5f13 e97520153270d91cf04d8ef9 на схеме условно можно сказать A=691a4cea B=3f19bcc9 C=de50ae86 D=e02915b5 E=b3ea5f13 F=e9752015 G=3270d91c H=f04d8ef9 Только эти А,В... меняются каждый раз в каждом из 64 повторений схемы. В,С,.., Н - равняются значениям на входе; только со сдвигом, тоесть В =А, С =В и т.д. А и Е вычисляются по сложной формуле, результат которой зависит от всех А,В,С,..Н Добавлено через 2 минуты Вначале Инициализация переменных (первые 32 бита дробных частей квадратных корней первых восьми простых чисел [от 2 до 19]): h0 := 0x6A09E667 h1 := 0xBB67AE85 h2 := 0x3C6EF372 h3 := 0xA54FF53A h4 := 0x510E527F h5 := 0x9B05688C h6 := 0x1F83D9AB h7 := 0x5BE0CD19 Инициализация вспомогательных переменных: a := h0 b := h1 c := h2 d := h3 e := h4 f := h5 g := h6 h := h7 И это и есть А,В,С, со схемы. А потом S1 := (e rightrotate 6) xor (e rightrotate 11) xor (e rightrotate 25) ch := (e and f) xor ((not e) and g) temp1 := h + S1 + ch + k[i] + w[i] S0 := (a rightrotate 2) xor (a rightrotate 13) xor (a rightrotate 22) maj := (a and b) xor (a and c) xor (b and c) temp2 := S0 + maj h := g g := f f := e e := d + temp1 d := c c := b b := a a := temp1 + temp2 И так 64 раза. В конце А,В,С,...Н и станут равны A=691a4cea B=3f19bcc9 C=de50ae86 D=e02915b5 E=b3ea5f13 F=e9752015 G=3270d91c H=f04d8ef9 Далее их просто записывают и Вы получите
1
|
||
|
0 / 0 / 0
Регистрация: 10.03.2021
Сообщений: 9
|
|
| 14.03.2021, 02:09 [ТС] | |
|
а входная строка где у вас? (ad3793e762a24abdb810994f95545ad0dab7f60 c7ef02b59c391bf68daa7 97c5)
0
|
|
|
461 / 201 / 80
Регистрация: 14.12.2017
Сообщений: 433
|
|
| 14.03.2021, 21:01 | |
|
1
|
|
|
0 / 0 / 0
Регистрация: 10.03.2021
Сообщений: 9
|
|
| 14.03.2021, 21:27 [ТС] | |
|
тоесть оно входную строку разбивает по одной букве правильно я понимаю? а что такое k[i]? а если букв у входной строке будет больше 64 что тогда?
0
|
|
|
461 / 201 / 80
Регистрация: 14.12.2017
Сообщений: 433
|
||||
| 14.03.2021, 22:31 | ||||
|
(первые 32 бита дробных частей кубических корней первых 64 простых чисел [от 2 до 311]): k[0..63] := 0x428A2F98, 0x71374491, 0xB5C0FBCF, 0xE9B5DBA5, 0x3956C25B, 0x59F111F1, 0x923F82A4, 0xAB1C5ED5, 0xD807AA98, 0x12835B01, 0x243185BE, 0x550C7DC3, 0x72BE5D74, 0x80DEB1FE, 0x9BDC06A7, 0xC19BF174, 0xE49B69C1, 0xEFBE4786, 0x0FC19DC6, 0x240CA1CC, 0x2DE92C6F, 0x4A7484AA, 0x5CB0A9DC, 0x76F988DA, 0x983E5152, 0xA831C66D, 0xB00327C8, 0xBF597FC7, 0xC6E00BF3, 0xD5A79147, 0x06CA6351, 0x14292967, 0x27B70A85, 0x2E1B2138, 0x4D2C6DFC, 0x53380D13, 0x650A7354, 0x766A0ABB, 0x81C2C92E, 0x92722C85, 0xA2BFE8A1, 0xA81A664B, 0xC24B8B70, 0xC76C51A3, 0xD192E819, 0xD6990624, 0xF40E3585, 0x106AA070, 0x19A4C116, 0x1E376C08, 0x2748774C, 0x34B0BCB5, 0x391C0CB3, 0x4ED8AA4A, 0x5B9CCA4F, 0x682E6FF3, 0x748F82EE, 0x78A5636F, 0x84C87814, 0x8CC70208, 0x90BEFFFA, 0xA4506CEB, 0xBEF9A3F7, 0xC67178F2 Тут вы путаете: у вас на входе ad3793e762a24abdb810994f95545ad0dab7f60c 7ef02b59c391bf68daa797c5 - строка, а не HEX. С таким же успехом можно было записать gdshfhurgyrfeguyerervbyhwrh, и получить 4d0e02fdfd880fc07269145f599369e57e8e6723 6ac785c1b1406e282d9ccb5e. Или yyguew23rtubfwf524guFYRYREQgu634rfvbDF^# %DDvjkhdaufh34uyFGD$gdasfgc#^dhgh^&D#dhf j и получить 61610ce4c28fc9df906aa653bf4d77028e5b2762 571eb9a36473a222d46b61cd/ Если ad3793e762a24abdb810994f95545ad0dab7f60c 7ef02b59c391bf68daa797c5(hex) то получим 411b2962ca141fdf704d2d58bfbcaa8123de9bc7 dae7579544ff95ed64e6e78e
1
|
||||
|
0 / 0 / 0
Регистрация: 10.03.2021
Сообщений: 9
|
|
| 14.03.2021, 23:34 [ТС] | |
|
ну а 32 бита это и есть ASCII код одной буквы строки, правильно? А можно для строки длиной 64 символа в которой содержиться всего 16 символов (0123456789abcdef), придумать обратный алгоритм? Чтобы получить из хеша входную строку или хотя бы похожую (я знаю что может много разных таких строк давать одинаковый хеш...)
0
|
|
|
461 / 201 / 80
Регистрация: 14.12.2017
Сообщений: 433
|
|||
| 15.03.2021, 00:53 | |||
|
0
|
|||
|
0 / 0 / 0
Регистрация: 10.03.2021
Сообщений: 9
|
|
| 15.03.2021, 01:43 [ТС] | |
|
тоесть входная строка берется по 4 буквы, это 16 повторений... а остальное 48 нулями заполняется?
почему 0? Я найду применение :-)
0
|
|
|
461 / 201 / 80
Регистрация: 14.12.2017
Сообщений: 433
|
||
| 15.03.2021, 12:38 | ||
|
Эти 512 байт делятся по 32 байта, которые вписываются в w[0..15] (16 шт. W)
1
|
||
|
0 / 0 / 0
Регистрация: 10.03.2021
Сообщений: 9
|
|
| 15.03.2021, 17:13 [ТС] | |
|
Масив входной строки имеет 16 элементов а цикл повторяется 64 раза как такое может быть?
как делиться входная строка напишите подробней? Например ad3793e762a24abdb810994f95545ad0dab7f60c 7ef02b59c391bf68daa7 97c5 что будет в масиве w[0..15]? Добавлено через 2 часа 0 минут так 512 и 32 байт или бит?
0
|
|
|
461 / 201 / 80
Регистрация: 14.12.2017
Сообщений: 433
|
|
| 15.03.2021, 17:43 | |
|
0
|
|
|
0 / 0 / 0
Регистрация: 10.03.2021
Сообщений: 9
|
|
| 15.03.2021, 18:09 [ТС] | |
|
Та ну его.... голову ломать :-) не понимаю я и все.
0
|
|
| 15.03.2021, 18:09 | |
|
Помогаю со студенческими работами здесь
17
Алгоритм крипто-хеширования Алгоритм хеширования паролей в Joomla 3.4.3 Реализовать алгоритм хеширования с закрытым значением Как реализовать алгоритм хеширования N-hash Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога
Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
|
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
|
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога
В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
|
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога
Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
|
|
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога
Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
|
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога
Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
|
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования.
Часть библиотеки BedvitCOM
Использованы. . .
|
SDL3 для Android: Загрузка PNG с альфа-каналом с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога
SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
|