Функция md5.Sum

Функция md5.Sum вычисляет MD5-хеш переданных данных и возвращает результат в виде массива из 16 байт ([16]byte). В единственный параметр мы передаем срез байтов ([]byte), для которого необходимо рассчитать хеш-сумму.

MD5 является криптографической хеш-функцией, которая генерирует 128-битное (16-байтное) хеш-значение. Обычно используется для проверки целостности данных, однако из-за уязвимостей не рекомендуется для криптографических приложений, требующих высокой стойкости к коллизиям.

Синтаксис

gomd5.Sum(data []byte) [16]byte

Пример

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

gopackage main

import (
  "crypto/md5"
  "fmt"
)

func main() {
  data := []byte("abcde")
  res := md5.Sum(data)
  fmt.Printf("%x", res)
}

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

go"ab56b4d92b40713acc5af89985d4b786"

Обратите внимание: для удобочитаемого вывода хеша используется формат %x, который преобразует байты в шестнадцатеричное представление.

Пример

Давайте сравним хеши двух разных строк "abcde" и "12345":

gopackage main

import (
  "crypto/md5"
  "fmt"
)

func main() {
  data1 := []byte("abcde")
  res1 := md5.Sum(data1)

  data2 := []byte("12345")
  res2 := md5.Sum(data2)

  fmt.Printf("Hash 1: %x\n", res1)
  fmt.Printf("Hash 2: %x", res2)
}

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

go"Hash 1: ab56b4d92b40713acc5af89985d4b786"
"Hash 2: 827ccb0eea8a706c4c34a16891f84e7b"

Пример

Давайте вычислим хеш и представим его в виде среза байтов для дальнейшей обработки:

gopackage main

import (
  "crypto/md5"
  "fmt"
)

func main() {
  data := []byte("hello world")
  res := md5.Sum(data)

  // Преобразуем массив в срез для удобства
  hashSlice := res[:]
  fmt.Println(hashSlice)
}

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

go[104 101 108 108 111 32 119 111 114 108 100]

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

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