Где этот компонент хранит константы для SHA-256 ? Смотрел код компонента там их нет.
Этот топик читают: Гость
Ответов: 146
Рейтинг: 1
|
|||
карма: 1 |
|
Ответов: 948
Рейтинг: 201
|
|||
Andrej77rv писал(а): Где этот компонент хранит константы для SHA-256 ? Смотри здесь \Elements\delphi\code\SHA.pas |
|||
карма: 19 |
|
Ответов: 2456
Рейтинг: 695
|
|||
Не совсем понятно о каких константах речь. Но код одним файлом компонента не ограничивается.
-Выделить компонент нажать Ctrl+F, откроется код компонента. -В самом начале есть строка uses где перечислены используемые файлы -Можно открыть и эти файлы в HiAsm. К примеру ткнуть по CryptoAPI (Ctrl + Enter), откроется CryptoAPI.pas -В нем в uses есть SHA, открыть SHA.pas Редактировалось 5 раз(а), последний 2025-08-24 09:58:08 |
|||
карма: 11 |
|
Ответов: 146
Рейтинг: 1
|
|||
карма: 1 |
|
Ответов: 2456
Рейтинг: 695
|
|||
Andrej77rv, вот для интереса посмотрел что можно найти по теме и полно статей где "разжеванно" все о SHA256.
К примеру Реализация алгоритма SHA-256 И даже наглядно показано: https://sha256algorithm.com/ Что вам мешает разобраться не понятно |
|||
карма: 11 |
|
Ответов: 146
Рейтинг: 1
|
|||
sla8a писал(а): Andrej77rv, вот для интереса посмотрел что можно найти по теме и полно статей где "разжеванно" все о SHA256.
К примеру Реализация алгоритма SHA-256 И даже наглядно показано: https://sha256algorithm.com/ Что вам мешает разобраться не понятно Я читал первую ссылку. Там объясняют математическим языком. Вопрос в последних 8 блоках. Я не могу понять что они делают. Там пишут что надо суммировать по модулю 2 раунды 63 и 64. Но я смотрел в поисковике, там пишут что раунды вообще не суммируются. ИИ тоже пишет что раунды в SHA-256 вообще не суммируются. В этом и весь вопрос. |
|||
карма: 1 |
|
Ответов: 2456
Рейтинг: 695
|
|||
Andrej77rv, а можешь прям вот пальцем показать где это:
Andrej77rv писал(а): Там пишут что надо суммировать по модулю 2 раунды 63 и 64в это статье: Реализация алгоритма SHA-256 Andrej77rv писал(а): Вопрос в последних 8 блоках.Andrej77rv писал(а): Там объясняют математическим языком. |
|||
карма: 11 |
|
Ответов: 146
Рейтинг: 1
|
|||
sla8a писал(а): О каких "последних" 8 блоках речь?Красной стрелкой указал --- Добавлено в 2025-08-25 11:56:33 sla8a писал(а): а можешь прям вот пальцем показать где это:С сайта по первой ссылке: "Значения, которые были получены на последней итерации цикла, складываются со старым и образуют новый вектор инициализации, который станет стартовым для следующего блока. h0+=a, h1+=b, h2+=c, h3+=d, h4+=e, h5+=f, h6+=g, h7+=h " Редактировалось 2 раз(а), последний 2025-08-25 11:56:59 |
|||
карма: 1 |
|
Ответов: 2456
Рейтинг: 695
|
|||
Andrej77rv, складывается впечатление что это троллинг (без обид, но есть подозрение).
Andrej77rv писал(а): Красной стрелкой указалAndrej77rv писал(а): С сайта по первой ссылке:И где в сайте говориться о: Andrej77rv писал(а): Там пишут что надо суммировать по модулю 2 раунды 63 и 64А вот это: Andrej77rv писал(а): Значения, которые были получены на последней итерации цикла, складываются со старым и образуют новый вектор инициализации, который станет стартовым для следующего блока.h0+=a, h1+=b, h2+=c, h3+=d, h4+=e, h5+=f, h6+=g, h7+=h Вам еще в другой теме tig-rrr ответом ИИ выложил (шаг 2): Добавляем результат к "главным специям": После 64 раундов мы берем наши изменившиеся рабочие переменные a-h и прибавляем их к изначальным значениям h0-h7. h0 = h0 + a h1 = h1 + b ... h7 = h7 + h И как видно ответ ИИ никак не противоречит статье на хабре. Надеюсь вы знаете что:
Редактировалось 1 раз(а), последний 2025-08-25 12:48:27 |
|||
карма: 11 |
|
Ответов: 146
Рейтинг: 1
|
|||
sla8a писал(а): И где в сайте говориться оА по вашему "раунд" и "интерация цикла" это не одно и тоже что-ли? --- Добавлено в 2025-08-25 12:58:08 sla8a писал(а): И что указано стрелкой? Где там именно "последние" 8 блоков? Там только 8 блоковТам ещё есть 6 сумматоров. Последние 8 тоже сумматоры. Редактировалось 3 раз(а), последний 2025-08-25 12:58:08 |
|||
карма: 1 |
|
Ответов: 2456
Рейтинг: 695
|
|||
Вот тут в статье дается ответ на твои вопросы.
Значения, которые были получены на последней итерации цикла, складываются со старым и образуют новый вектор инициализации, который станет стартовым для следующего блока. h0+=a, h1+=b, h2+=c, h3+=d, h4+=e, h5+=f, h6+=g, h7+=h Если данный блок был последним, то сумма элементов этого вектора станет итоговым хэшем сообщения h0+ h1+ h2+ h3+ h4+ h5+ h6+ h7=hash_sha-256 |
|||
карма: 11 |
|
Ответов: 146
Рейтинг: 1
|
|||
sla8a писал(а): Что тут не понятно?Ну теперь вроде понятно. Я спросил ИИ складываются инерции цикла в SHA-256 пишет что да. А когда спрашивал про раунды пишет что нет. Хотя это одно и тоже. Редактировалось 3 раз(а), последний 2025-08-25 13:35:27 |
|||
карма: 1 |
|
Ответов: 2456
Рейтинг: 695
|
|||
Так вот в этом разборе habr (ссылка выложенная тобой в другой теме) вообще разжевано хорошенько.
Если правильно понял то вопросы твои были о шаге 7 и 8. Вот тебе еще для наглядности шаг 1,2 и шаг 8 на схеме:
Редактировалось 1 раз(а), последний 2025-08-25 13:57:15 |
|||
карма: 11 |
|
Ответов: 146
Рейтинг: 1
|
|||
карма: 1 |
|
Ответов: 146
Рейтинг: 1
|
|||
Подскажите ещё почему не получается конвертировать Hex в Bin?
|
|||
карма: 1 |
|