Функция sha1.New

Функция sha1.New создает новый объект, реализующий интерфейс hash.Hash, который позволяет вычислять хеш SHA-1. Она не принимает никаких параметров. Возвращаемое значение представляет собой хеш-объект, который можно использовать для последовательного добавления данных через метод Write и получения итогового хеша через метод Sum. SHA-1 производит хеш длиной 20 байт.

Синтаксис

gosha1.New() hash.Hash

Пример

Давайте вычислим SHA-1 хеш для строки "abcde":

gopackage main

import (
  "crypto/sha1"
  "fmt"
)

func main() {
  h := sha1.New()
  h.Write([]byte("abcde"))
  res := fmt.Sprintf("%x", h.Sum(nil))
  fmt.Println(res)
}

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

go"6c6418a99a747d8bc47ae5d5295353834827d3cd"

Пример

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

gopackage main

import (
  "crypto/sha1"
  "fmt"
)

func main() {
  h := sha1.New()
  h.Write([]byte("abc"))
  h.Write([]byte("de"))
  res := fmt.Sprintf("%x", h.Sum(nil))
  fmt.Println(res)
}

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

go"6c6418a99a747d8bc47ae5d5295353834827d3cd"

Пример

Давайте получим хеш в виде байтового слайса, а не строки:

gopackage main

import (
  "crypto/sha1"
  "fmt"
)

func main() {
  h := sha1.New()
  h.Write([]byte("abcde"))
  res := h.Sum(nil)
  fmt.Println(res)
}

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

go[108 100 24 169 154 116 125 139 196 122 229 213 41 83 83 56 52 39 211 205]

Смотрите также

  • функцию sha1.Sum,
    которая вычисляет SHA-1 хеш напрямую без создания хеш-объекта
  • функцию sha256.New,
    которая создает объект для вычисления SHA-256 хеша
  • функцию md5.New,
    которая создает объект для вычисления MD5 хеша
  • интерфейс hash.Hash,
    который реализуют все хеш-объекты в пакете crypto