badkaktus 30ac0047a3 sha1
2019-10-11 13:08:27 +03:00

41 lines
1.8 KiB
Go
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

// [_Хеши SHA1_](http://en.wikipedia.org/wiki/SHA-1) часто
// используются для вычисления коротких идентификаторов
// для двоичных или текстовых BLOB-объектов. Например,
// [система контроля версий git](http://git-scm.com/) широко использует SHA1 для
// идентификации версионных файлов и каталогов. Вот как
// вычислить хэши SHA1 в Go.
package main
// Go реализует несколько хеш-функций в пакете
// `crypto/*`.
import (
"crypto/sha1"
"fmt"
)
func main() {
s := "sha1 this string"
// Для генерации хеша используется функция `sha1.New()`,
// `sha1.Write(bytes)`, затем `sha1.Sum([]byte{})`.
// Тут мы создаем новый хеш.
h := sha1.New()
// В `Write` необходимо передать байты. Если у вас есть
// строка `s`, используйте `[]byte(s)`, чтобы привести
// ее к байтам.
h.Write([]byte(s))
// Получаем окончательный результат хеш-функции в виде
// байтового фрагмента. Аргумент в `Sum` добавляет к
// существующему фрагменту байты, но обычно он не используется.
bs := h.Sum(nil)
// Значения SHA1 часто печатаются в шестнадцатеричном формате,
// например, в git commit. Используйте `%x` для преобразования
// результатов хеширования в шестнадцатеричную строку.
fmt.Println(s)
fmt.Printf("%x\n", bs)
}