Хеши SHA1 часто используются для вычисления коротких идентификаторов для двоичных или текстовых BLOB-объектов. Например, система контроля версий git широко использует SHA1 для идентификации версионных файлов и каталогов. Вот как вычислить хэши SHA1 в Go. |
|
package main
|
|
Go реализует несколько хеш-функций в пакете
|
import (
"crypto/sha1"
"fmt"
)
|
func main() {
s := "sha1 this string"
|
|
Для генерации хеша используется функция |
h := sha1.New()
|
В |
h.Write([]byte(s))
|
Получаем окончательный результат хеш-функции в виде
байтового фрагмента. Аргумент в |
bs := h.Sum(nil)
|
Значения SHA1 часто печатаются в шестнадцатеричном формате,
например, в git commit. Используйте |
fmt.Println(s)
fmt.Printf("%x\n", bs)
}
|
Запущенная программа вычисляет хеш и печатает его в удобочитаемом шестнадцатеричном формате. |
$ go run sha1-hashes.go
sha1 this string
cf23df2207d99a74fbe169e3eba035e633b65d94
|
Вы можете вычислить другие хэши, используя шаблон,
аналогичный показанному выше. Например, для вычисления
хэшей MD5 импортируйте |
|
Обратите внимание, что если вам нужны криптографически защищенные хэши, вы должны тщательно исследовать стойкость хэша! |
Следующий пример: Кодирование Base64 (Base64 Encoding).