Go на примерах: Хеши SHA256

Хеши SHA256 часто используются для вычисления коротких идентификаторов для бинарных или текстовых данных. Например, TLS/SSL сертификаты используют SHA256 для вычисления подписи сертификата. Вот как вычислять хеши SHA256 в Go.

package main

Go реализует несколько хеш-функций в различных пакетах crypto/*.

import (
    "crypto/sha256"
    "fmt"
)
func main() {
    s := "sha256 this string"

Здесь мы начинаем с нового хеша.

    h := sha256.New()

Write ожидает байты. Если есть строка s, используй []byte(s) для преобразования в байты.

    h.Write([]byte(s))

Получаем итоговый результат хеша в виде среза байтов. Аргумент Sum можно использовать для добавления к существующему срезу байтов: обычно это не нужно.

    bs := h.Sum(nil)
    fmt.Println(s)
    fmt.Printf("%x\n", bs)
}

Запуск программы вычисляет хеш и выводит его в читаемом шестнадцатеричном формате.

$ go run sha256-hashes.go
sha256 this string
1af1dfa857bf1d8814fe1af8983c18080019922e557f15a8a...

Можно вычислять другие хеши по аналогичному шаблону. Например, для вычисления хешей SHA512 импортируй crypto/sha512 и используй sha512.New().

Учти, что если нужны криптографически безопасные хеши, следует тщательно изучить стойкость хешей!

Далее: .