Форум программистов, компьютерный форум, киберфорум
Delphi для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.80/124: Рейтинг темы: голосов - 124, средняя оценка - 4.80
0 / 0 / 1
Регистрация: 23.02.2018
Сообщений: 13

SHA-256

23.03.2018, 13:37. Показов 26242. Ответов 11
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Наткнулся на тему https://bits.media/bitcoin-address-theory/
и решил реализовать данный алгоритм с целью применения хеширования в дальнейшем (сделать все шаги), но после первого хеширования строки '04678afdb0fe5548271967f1a67130b7105cd6a 828e03909a67962e0ea1f61deb649f6bc3f4cef3 8c4f35504e51ec112de5c384df7ba0b8d578a4c7 02b6bf11d5f' получается
'b45650d07f0271a296f2941564645f541443086 889446eadf1901b29757669c7'
А должно быть
'261c1eb21fc4708c6acbe1cfc6d4565652e9e76 8b620782898936b93000a6c02'
Подскажите, что не так делаю?

Delphi
1
2
3
4
5
6
7
8
9
10
11
12
uses System.Hash;
procedure TForm1.Button1Click(Sender: TObject);
var
b,z:string;
   H:THashSHA2;
 
begin z:='04678afdb0fe5548271967f1a67130b7105cd6a828e03909a67962e0ea1f61deb649f6bc3f4cef38c4f35504e51ec112de5c384df7ba0b8d578a4c702b6bf11d5f';
label1.Caption := z;
 h.Create(SHA256);
 b:=h.GetHashString(z,SHA256);
label2.Caption := b;
end;
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
23.03.2018, 13:37
Ответы с готовыми решениями:

Есть сгенерированный дайджест текстового файла методом SHA-2(256 битов). Как сделать из 256 битов 512?
Основной код unit Main; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, ...

Сгенерировать дайджест текстового файла методом SHA-2(256 битов)
Сгенерировать дайджест текстового файла методом SHA-2(256 битов). Результат вывести в поле Edit. Программа должна иметь возможность выбора...

AES 256 + Base64
Доброго времени суток, может кто подсказать функцию шифрование на делфи aes 256. Нужен хотя бы пример шифрование: data+privat key.

11
 Аватар для krapotkin
6847 / 4674 / 1463
Регистрация: 14.04.2014
Сообщений: 20,656
Записей в блоге: 21
23.03.2018, 14:42
Delphi
1
s1:= THashSHA2.GetHashString(s, TSHA2Version.SHA256);
0
0 / 0 / 1
Регистрация: 23.02.2018
Сообщений: 13
23.03.2018, 15:12  [ТС]
krapotkin, сделал так (убрал h.Create(SHA256)
Delphi
1
2
3
4
5
6
7
8
9
10
11
uses System.Hash;
procedure TForm1.Button1Click(Sender: TObject);
var
b,z:string;
   H:THashSHA2;
 
begin z:='04678afdb0fe5548271967f1a67130b7105cd6a828e03909a67962e0ea1f61deb649f6bc3f4cef38c4f35504e51ec112de5c384df7ba0b8d578a4c702b6bf11d5f';
label1.Caption := z;
b:=h.GetHashString(z,SHA256);
label2.Caption := b;
end;
полученный хэш всё равно не тот, нужно перевести начальную строку из HEX во что-то другое?
Или опять что-то не то?
0
 Аватар для krapotkin
6847 / 4674 / 1463
Регистрация: 14.04.2014
Сообщений: 20,656
Записей в блоге: 21
23.03.2018, 15:27
зашел сюда
http://www.xorbin.com/tools/sha256-hash-calculator
ввел
04678afdb0fe5548271967f1a67130b7105cd6a8 28e03909a67962e0ea1f61deb649f6bc3f4cef38 c4f35504e51ec112de5c384df7ba0b8d578a4c70 2b6bf11d5f
получил
b45650d07f0271a296f2941564645f5414430868 89446eadf1901b29757669c7

Добавлено через 1 минуту
там пробел в строке движок сайта ставит
я его убрал для вычисления хэша
0
0 / 0 / 1
Регистрация: 23.02.2018
Сообщений: 13
23.03.2018, 17:30  [ТС]
Вот оно, https://8500.ru/hex2file/, сюда ввёл 16ричный код и получил этот файл, затем полученный файл https://md5file.com/calculator сюда запихал и получил тот хэш, который нужен. '261c1eb21fc4708c6acbe1cfc6d4565652e9e76 8b620782898936b93000a6c02'
Осталось этот перевод из текста перевести в код и хэшировать. но вот теперь здесь я бьюсь, так как опять не получаю то, что нужно.
0
0 / 0 / 1
Регистрация: 23.02.2018
Сообщений: 13
23.03.2018, 17:58  [ТС]
Полученный файл во вложении. У меня сейчас текст такой:
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
procedure TForm1.Button2Click(Sender: TObject);
var
hex:byte;
H:THashSHA2;
f:file of byte;
 z,at,b:AnsiString;
begin
   at:='';
      assignfile (F,'F:\Удали меня\HHH.bin');
     reset(F);
     while not eof(F) do
       begin
              Read(F, hex);
                at:=at+chr(hex);
       end;
       closefile(f);
     b:= H.GetHashString(at, SHA256);
    label3.Caption := b;
end;
Хэш получаю не тот, что нужно.
Вложения
Тип файла: txt HHH.txt (65 байт, 17 просмотров)
0
0 / 0 / 1
Регистрация: 23.02.2018
Сообщений: 13
23.03.2018, 19:13  [ТС]
GetHashStringFromFile - а вот через эту функцию всё работает. Конечно не хотелось бы через файл действовать.
0
 Аватар для krapotkin
6847 / 4674 / 1463
Регистрация: 14.04.2014
Сообщений: 20,656
Записей в блоге: 21
23.03.2018, 23:39
Лучший ответ Сообщение было отмечено Guzlov как решение

Решение

а зачем вы нам мозги компасируете со своей строкой????
если вам нужен не хэш строки, а хэш последовательности байт, которая в шестнадцатиричном виде выглядит как строка, которую вы нам привели...
смотрим в код, который в System.hash. Оттуда следует что
Delphi
1
2
3
4
5
6
7
var
  LSHA2: THashSHA2;
begin
  LSHA2 := THashSHA2.Create(AHashVersion);
  LSHA2.Update(ВОТ СЮДА НУЖНО ПЕРЕДАТЬ МАССИВ БАЙТОВ);
  Result := LSHA2.HashAsString;
end;
0
0 / 0 / 1
Регистрация: 23.02.2018
Сообщений: 13
24.03.2018, 00:40  [ТС]
Спасибо, попробовал, с обыкновенными символами работает, сравнивал с http://www.xorbin.com/tools/sha256-hash-calculator и https://md5file.com/calculator, а с управляющими нет, результаты разнятся. Может ближе к вечеру уже взрыв мозга. Позже повторю.
Новую тему открывал, где хотел получить хэш алгоритма RIPEMD-160, не пойму, какая библиотека за это отвечает, да и соответственно как его вытаскивать. Помогите пожалуйста.
0
 Аватар для krapotkin
6847 / 4674 / 1463
Регистрация: 14.04.2014
Сообщений: 20,656
Записей в блоге: 21
24.03.2018, 10:01
первый раз слышу вообще про этот алгоритм, и в стандартных модулях делфи его нет

а про символы можно поподробнее? опять символы? мы же про байты говорили. там нет никаких "управляющих" байтов в массиве
0
0 / 0 / 1
Регистрация: 23.02.2018
Сообщений: 13
24.03.2018, 21:23  [ТС]
krapotkin, тему закрываю, через файлы всё работает, наверное и правильно через них делать.
0
 Аватар для krapotkin
6847 / 4674 / 1463
Регистрация: 14.04.2014
Сообщений: 20,656
Записей в блоге: 21
25.03.2018, 22:15
в файле те самые байты, про которые вам твердят
по два символа читаете из строки и добавляете спереди '$'
и суете в массив байтов
Delphi
1
2
3
4
for i:=0 to length(s)-1 do
  aaa[i] := StrToInt('$'+copy(s, 1+2*i, 2));
LSHA2.Update(aaa);
Result := LSHA2.HashAsString;
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
25.03.2018, 22:15
Помогаю со студенческими работами здесь

BMP 256 в массив и обратно
Суть программы в том, чтобы загрузить BMP в массив byte, добить массив до квадратного Генератором случайных чисел, и над ним проводить...

Получить один байт из 256
нужно вписать в 1 байт число 71, как это сделать? Добавлено через 2 минуты знаю что 256 это буква 'я', но как это в delphi...

Записывает 256 байт вместо 240!
Function DeleteRecord(id: Integer): Boolean; . . . Type TCows = Record id: integer; name: String; weight:...

Рассчитать кол-во каждой цифры длинного целого числа (до 256 цифр) и вывести результат
Не получается найти ошибку. Задание звучит так: рассчитать кол-во каждой цифры длинного целого числа (до 256 цифр) и вывести результат. ...

Длина текста в поле в SQL запросе больше 256 символов, надо прикрутить BLOB
Delphi 7, IB7, Win7 varADOQuery1Name: String; try ADOQuery2.SQL.Clear; ADOQuery2.SQL.Add('UPDATE ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
Новые блоги и статьи
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Access
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru