Функция sha512.New512_256

Функция sha512.New512_256 создает новый хеш SHA-512/256. В отличие от стандартного SHA-512, она возвращает хеш длиной 256 бит. Данная функция возвращает интерфейс hash.Hash, который можно использовать для вычисления хеша данных. Этот алгоритм представляет собой усеченную версию SHA-512, которая работает быстрее на 64-битных платформах и обеспечивает хорошую защиту от атак удлинения сообщения.

Синтаксис

gosha512.New512_256() hash.Hash

Функция не принимает параметров и возвращает объект, реализующий интерфейс hash.Hash.

Пример

Давайте вычислим хеш SHA-512/256 для строки 'abcde':

gopackage main

import (
  "crypto/sha512"
  "fmt"
)

func main() {
  h := sha512.New512_256()
  h.Write([]byte("abcde"))
  res := h.Sum(nil)
  fmt.Printf("%x", res)
}

Результат выполнения кода:

go"2f8b52fd1a482af540d43e594aa50836be1af126f6c9f37bfa68f2b6a15078f3"

Пример

Давайте вычислим хеш SHA-512/256 для данных из нескольких частей:

gopackage 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)
}

Результат выполнения кода:

go"ade69848c9f5785f652a0db7b72d45aec3db71901814c6c78b6e4bf6750c61fd"

Пример

Давайте сравним хеш SHA-512/256 с хешем SHA-256 для одной строки:

gopackage 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)
}

Результат выполнения кода:

go"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 за один вызов