Як сформувати sha256 в проєкті ZennoPoster

Алгоритм sha256 популярний, безпечний і дуже часто використовується. Проте в програмі ZennoPoster розробники не подумали про те, що користувачам може знадобитись спосіб згенерувати хеш цим алгоритмом без використання коду – звичайним блоком. Тому приходиться вирішувати це завдання використовуючи блок Свій C# код.

Код, який буде генерувати хеш алгоритмом sha256 може виглядати приблизно так:

string text = "текст з якого потрібно одержати sha256";
string sha256 = string.Empty;
var sb = new StringBuilder();
using (var hash = System.Security.Cryptography.SHA256Managed.Create()) {
var enc = Encoding.UTF8;
foreach (var b in hash.ComputeHash(enc.GetBytes(text))){
sb.Append(b.ToString("x2"));
}
}
sha256 = sb.ToString();
return sha256;

Результатом його виконання буде текстовий рядок:
5046a71812b6af30b598b89bbe91b8fdd1fd672911d77422c0f042faa7a99744

Я інколи маю справу з криптовалютами – а SHA256 – це основа, на якій будується цепочка блоків. Саме цей тип хешу використовується майнерами для того, щоб заробляти нагороду в мережі Bitcoin. Є навіть спільноти людей, які не дуже розуміють наскільки беспечним є цей тип хешу, і пробують знаходити загублені монети. Вони пробують підібрати хеш з надією що це буде приватний ключ до кошелька, на якому лежать біткоіни.

Але в моєму випадку використання sha256 зводиться до того, щоб коли я відправлю GET запит на якийсь сайт сьогодні. І потім відправлю запит на нього завтра. Щоб зрозуміти що відбулись зміни, мені не потрібно порівнювати весь html код, мені достатньо в перший день зберегти хеш, а на слідуючий день просто порівнювати хеш попереднього дня і сьогоднішній. Якщо вони не співпадають, то є смисл обновити дані в базі даних новою інформацією.

Також деякі криптовалютні біржі просять у своїй API документації відправляти поряд з даними SHA256, щоб вони могли переконатись що дані не були змінені при передачі.

Залишити відповідь

Ваша e-mail адреса не оприлюднюватиметься. Обов’язкові поля позначені *