Функция sha512.New512_256
Функция sha512.New512_256 создает новый хеш SHA-512/256.
В отличие от стандартного SHA-512, она возвращает хеш длиной 256 бит.
Данная функция возвращает интерфейс hash.Hash, который можно
использовать для вычисления хеша данных. Этот алгоритм представляет
собой усеченную версию SHA-512, которая работает быстрее на 64-битных
платформах и обеспечивает хорошую защиту от атак удлинения сообщения.
Синтаксис
sha512.New512_256() hash.Hash
Функция не принимает параметров и возвращает объект,
реализующий интерфейс hash.Hash.
Пример
Давайте вычислим хеш SHA-512/256 для строки 'abcde':
package main
import (
"crypto/sha512"
"fmt"
)
func main() {
h := sha512.New512_256()
h.Write([]byte("abcde"))
res := h.Sum(nil)
fmt.Printf("%x", res)
}
Результат выполнения кода:
"2f8b52fd1a482af540d43e594aa50836be1af126f6c9f37bfa68f2b6a15078f3"
Пример
Давайте вычислим хеш SHA-512/256 для данных из нескольких частей:
package main
import (
"crypto/sha512"
"fmt"
)
func main() {
h := sha512.New512_256()
h.Write([]byte("abc"))
h.Write([]byte("de"))
h.Write([]byte("fgh"))
res := h.Sum(nil)
fmt.Printf("%x", res)
}
Результат выполнения кода:
"ade69848c9f5785f652a0db7b72d45aec3db71901814c6c78b6e4bf6750c61fd"
Пример
Давайте сравним хеш SHA-512/256 с хешем SHA-256 для одной строки:
package main
import (
"crypto/sha256"
"crypto/sha512"
"fmt"
)
func main() {
data := []byte("abcde")
h1 := sha512.New512_256()
h1.Write(data)
res1 := h1.Sum(nil)
h2 := sha256.New()
h2.Write(data)
res2 := h2.Sum(nil)
fmt.Printf("SHA-512/256: %x\n", res1)
fmt.Printf("SHA-256: %x\n", res2)
}
Результат выполнения кода:
"SHA-512/256: 2f8b52fd1a482af540d43e594aa50836be1af126f6c9f37bfa68f2b6a15078f3"
"SHA-256: 03c7c0ace395d80182db07ae2c30f03430d4c0b90bb3c6006e51dda11e4cc7d7"
Смотрите также
-
функцию
sha512.New,
которая создает хеш SHA-512 -
функцию
sha512.New384,
которая создает хеш SHA-384 -
функцию
sha512.New512_224,
которая создает хеш SHA-512/224 -
функцию
sha512.Sum512,
которая вычисляет хеш SHA-512 за один вызов