1.2 KiB
1.2 KiB
title, date, draft, tags
title | date | draft | tags | |||||
---|---|---|---|---|---|---|---|---|
Kennwörter in Go verschlüsseln | 2020-02-26 | false |
|
Go hat vorne herein bereits viele hilfreiche Pakete. Eines davon ist das Paket bcrypt mit dem sich z.B. Kennwörter sicher verschlüsseln lassen:
package main
import (
"fmt"
"golang.org/x/crypto/bcrypt"
)
func main() {
pw := "SecretPassword"
bs, err := bcrypt.GenerateFromPassword([]byte(pw), 2)
//let's look at the encrypted password
fmt.Printf("encryption result: %s\n", string(bs))
err = bcrypt.CompareHashAndPassword(bs, []byte(pw))
if err != nil {
fmt.Println("Wrong! Wrong! Wrong!")
}
}
Wir übergeben der Funktion GenerateFromPassword([]byte(pw), 2) unser Kennwort als slice vom Typ Byte, sowie einen Integer für das zweite Funktionsargument cost. Je höher die Zahl ist desto höher die "Kosten" für die Berechnung. Das bedeutet, dass die Verschlüsselung bei einer höheren Zahl länger braucht, aber auch sicherer ist. Wenn wir eine 0 als Kosten übergeben nimmt bcrypt einen Standardwert für die Berechnung.
Eigentlich alles recht easy 😊