34 lines
1.2 KiB
Markdown
34 lines
1.2 KiB
Markdown
---
|
|
title: "Kennwörter in Go verschlüsseln"
|
|
date: 2020-02-26
|
|
draft: false
|
|
tags: ["programmieren","golang","go","crypt","snippets"]
|
|
---
|
|
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:
|
|
```go
|
|
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!")
|
|
}
|
|
}
|
|
```
|
|
[Code ausprobieren](https://play.golang.org/p/jxoTHhAPQ5G)
|
|
|
|
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 😊
|