Функция md5.Sum
Функция md5.Sum вычисляет MD5-хеш переданных данных
и возвращает результат в виде массива из 16 байт
([16]byte). В единственный параметр мы передаем
срез байтов ([]byte), для которого необходимо
рассчитать хеш-сумму.
MD5 является криптографической хеш-функцией, которая генерирует 128-битное (16-байтное) хеш-значение. Обычно используется для проверки целостности данных, однако из-за уязвимостей не рекомендуется для криптографических приложений, требующих высокой стойкости к коллизиям.
Синтаксис
md5.Sum(data []byte) [16]byte
Пример
Давайте вычислим MD5-хеш для строки "abcde":
package main
import (
"crypto/md5"
"fmt"
)
func main() {
data := []byte("abcde")
res := md5.Sum(data)
fmt.Printf("%x", res)
}
Результат выполнения кода:
"ab56b4d92b40713acc5af89985d4b786"
Обратите внимание: для удобочитаемого вывода хеша
используется формат %x, который преобразует
байты в шестнадцатеричное представление.
Пример
Давайте сравним хеши двух разных строк "abcde"
и "12345":
package 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)
}
Результат выполнения кода:
"Hash 1: ab56b4d92b40713acc5af89985d4b786"
"Hash 2: 827ccb0eea8a706c4c34a16891f84e7b"
Пример
Давайте вычислим хеш и представим его в виде среза байтов для дальнейшей обработки:
package main
import (
"crypto/md5"
"fmt"
)
func main() {
data := []byte("hello world")
res := md5.Sum(data)
// Преобразуем массив в срез для удобства
hashSlice := res[:]
fmt.Println(hashSlice)
}
Результат выполнения кода:
[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 хеш данных