Sha256 Hashes

SHA256 Хеші|SHA256 Hashes #

// Алгоритм хешування [_SHA2_](https://uk.wikipedia.org/wiki/SHA-2)
// використовують для визначення коротких ідентифікаторів
// для бінарних або текстових даних. Він використовується наприклад
// в TLS/SSL сертифікатах.
// В Go визначити хеш SHA2 хеш можна наступним чином.

package main

// Стандартна бібліотека Go включає реалізацію кількох різноманітних
// алгоритмів хешування, вони доступні нам як пакети `crypto/*`.
import (
	"crypto/sha256"
	"fmt"
)

func main() {
	s := "sha256 цей рядок"

	// Шаблон для генерації хешу наступний - `sha256.New()`,
	// `sha256.Write(bytes)`, і наостанок `sha256.Sum([]byte{})`.
	// Почнеємо - з генерації нового хешу.
	h := sha256.New()

	// `Write` очікує байти і у випадку `s` це рядок,
	// скористаємось `[]byte(s)` для конвертації його у байти.
	h.Write([]byte(s))

	// Результатом цієї операції - стане SHA1 хеш у вигляді
	// зрізу байтів, який ми можемо представити як рядок пізніше.
	// Аргумент ( що передається методому `Sum`) може бути використано,
	// з ціллю додати його на початок отриманого зрізу нашого хешу,
	// але насправді така операція зазвичай не потрібна (це не
	// "[соління](https://uk.wikipedia.org/wiki/Сіль_(криптографія))"
	// як можна було б продумати спочатку).
	bs := h.Sum(nil)

	fmt.Println(s)
	fmt.Printf("%x\n", bs)
}
# Running the program computes the hash and prints it in
# a human-readable hex format.
$ go run sha256-hashes.go
sha256 цей рядок
7c26dbccec9baa0fe6e62e8a34509b567babad17382fd...


# Ви можете обчислювати і інші типи хешів використовуючи
# схожий до вищенаведеного сценарій. Напряклад, для
# прорахунку SHA512 імпортуйте `crypto/sha512` і
# скористайтесь `sha512.New()`.

# Зауважте - якщо вам потрібні криптографічно-безпечні
# хеші - спершу порівняйте переваги і недоліки
# [різноматнітних алгоритмів хешування](https://uk.wikipedia.org/wiki/Криптографічна_хеш-функція)!