Golang Crypto -Paket

Golang Crypto -Paket
In dieser Lektion über das Krypto -Paket in Golang werden wir verschiedene Beispiele zum Verwalten und Erstellen von Chiffren in Go und sehen, wie das Crypto -Paket uns in Bezug. Wir werden jetzt anfangen.

Beginnend mit Go

Nur um sicherzustellen, dass wir auf derselben Seite sind, hier ist die Verzeichnisstruktur, die ich für mein Hello World -Programm gemacht habe:

Hier ist das Programm, das wir erstellt haben:

Paket Main
importieren "fmt"
func main ()
fmt.Printf ("Hallo, Welt.\N")

Wir können das obige Programm mit dem folgenden Befehl ausführen:

Geh run Hallo.gehen

Sobald wir diesen Befehl ausgeführt haben, ist hier die Ausgabe, die Sie sehen werden:

Das sieht gut aus. Lassen Sie uns zu unserer Hauptagenda wechseln.

Krypto -Paket in Golang

Die Verwendung von Krypto in Golang ist nicht sehr leicht zu verstehen. Dies liegt an den von ihm bereitgestellten Konstrukten und dem von ihm folgenen Algorithmus, um Verschlüsselung und Entschlüsselung zu erreichen.

In dieser Lektion werden wir folgende Punkte studieren:

  • SHA256 Verschlüsselung
  • So verwenden Sie BCrypt, um Strings wie Passwörter in Ihren Webanwendungen zu verschlüsseln
  • Verwendung von AES -Verschlüsselung und Entschlüsselung

Beginnen wir mit dem Hashing und dem Vergleich von Passwörtern.

SHA256 Verschlüsselung

Wir werden mit etwas einfach anfangen. Wir werden ein sehr einfaches Beispiel für die Durchführung einer SHA256 -Verschlüsselung mit Golang versuchen. Schauen wir uns das Beispiel an:

Paket Main
importieren (
"fmt"
"Fehler"
"Crypto/SHA256"
"Codierung/Base64"
)
func main ()
Somext: = "Shubham"
Hash, ERR: = HashTextTO32Bytes (irgendwann)
fmt.Printf (" %s \ n %s", Hash, ähm)

func HashTextTO32Bytes (Hashthis -Zeichenfolge) (Hashed -Zeichenfolge, Error error)
Wenn Len (Hashthis) == 0
Rückgabe "", Fehler.Neu ("Keine Eingabe geliefert")

Hasher: = SHA256.Neu()
Hasher.Schreiben ([] byte (Hashthis))
StringTosha256: = Base64.Urlencodierung.CodetoString (Hasher.Sum (nil))
// Schneiden Sie die Länge auf 32 Bytes ab und kehren Sie zurück.
return stringTosha256 [: 32], nil

Wir haben zunächst einen Hasher erstellt. Anschließend schreiben wir es, um den Hash in ein Byte -Array zu schreiben. Schließlich codieren wir die Zeichenfolge und geben die 32 Bit Hash zurück.

Wenn wir dieses Beispiel ausführen, erhalten wir die folgende Ausgabe:

Hashing und passendes Passwort

Jetzt werden wir endlich BCrypt verwenden, um Hash -Passwörter zu erstellen. Wir werden die Funktionen direkt und einfach halten.

Wir werden auch eine Funktion angeben, die dem Hashed -Passwort zu einer bestimmten Zeichenfolge übereinstimmt. Auf diese Weise können wir auch bestätigen, ob das vom Benutzer bereitgestellte Passwort korrekt ist. Vor dem Ausführen dieses Code muss das Golang -Paket für BCrypt mit dem folgenden Befehl installiert werden:

# Geh und hol "Golang.org/x/crypto/bcrypt "

Dann können Sie diesen Code ausführen:

Paket Main
importieren "fmt"
Import "Golang.org/x/crypto/bcrypt "
func Hashpassword (Kennwortzeichenfolge) (String, Fehler)
Bytes, err: = bcrypt.GenerateFrompassword ([] byte (Passwort), 14)
Return String (Bytes), ERR

func checkPasswordHash (Passwort, Hash -Zeichenfolge) bool
err: = bcrypt.ComparehasHandPassword ([] Byte (Hash), [] Byte (Passwort))
return err == nil

func main ()
mypwd: = "Shubham"
bereitgestellt, _: = Hashpassword (mypwd)
fmt.Println ("Passwort:", mypwd)
fmt.Println ("Hash:", vorausgesetzt, abhash)
Ismatch: = checkPasswordHash (mypwd, bereitgestelltesHash)
fmt.Println ("Matched ?: ", Ismatch)

Wenn wir dieses Beispiel ausführen, erhalten wir die folgende Ausgabe:

Abschluss

In diesem Beitrag haben wir einfache, aber nützliche Beispiele dafür untersucht, wie wir das Crypto -Paket verwenden können, um Aktionen in unseren Anwendungen sehr wichtig und nützlich zu machen.