|
SHA1 hash funkce jsou často používané pro výpočet krátkých identit pro binární nebo textové bloby. Například, systém git pro správu verzí hojně používá SHA1 pro identifikování verzovaných souborů a adresářů. Tady je jak vypočítat SHA1 hashe v Go. |
|
package main
|
|
|
Go implementuje několik hash funkcí v různých balíčcích
|
import "crypto/sha1"
import "fmt"
|
func main() {
s := "sha1 this string"
|
|
|
Vzor pro generování hashe je |
h := sha1.New()
|
|
|
h.Write([]byte(s))
|
|
Toto získá finalizovaný výsledek hashe jako výřez
bajtů. Parametr funkce |
bs := h.Sum(nil)
|
|
Hodnoty SHA1 jsou často vypisované ve hexa, například
v git commitech. Použij formátovací verb |
fmt.Println(s)
fmt.Printf("%x\n", bs)
}
|
|
Spuštění programu vypočítá hash a vypíše ho ve lidsky čitelném hexa formátu. |
$ go run sha1-hashes.go
sha1 this string
cf23df2207d99a74fbe169e3eba035e633b65d94
|
|
S použitím podobného vzoru můžeš vypočítat jiné hashe
podobné tomu výše. Například pro výpočet MD5 hashe
importuj |
|
|
Poznamenej si, že pokud budeš potřebovat kryptograficky bezpečné hashe, měl bys opatrně prozkoumat sílu hash funkcí! |
Další příklad: Kódování base64.