golang

Golang-Kryptopaket

Golang-Kryptopaket
In dieser Lektion zum Crypto-Paket in Golang werden wir verschiedene Beispiele zum Verwalten und Erstellen von Verschlüsselungen in Go studieren und sehen, wie uns das Crypto-Paket in Bezug auf die Verschlüsselungshandhabung in der Programmiersprache Go hilft. Wir fangen jetzt an.

Beginnend mit Go

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

Hier ist das von uns erstellte Programm:

Hauptpaket
"fmt" importieren
func main()
fmt.Printf("Hallo Welt.\n")

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

geh laufen hallo.gehen

Sobald wir diesen Befehl ausführen, sehen Sie hier die Ausgabe:

Das sieht jetzt gut aus. Kommen wir zu unserer Hauptagenda.

Krypto-Paket in Golang

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

In dieser Lektion werden wir diese Punkte untersuchen:

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

SHA256-Verschlüsselung

Wir beginnen mit etwas einfach. Wir werden ein sehr einfaches Beispiel ausprobieren, wie man eine SHA256-Verschlüsselung mit Golang . durchführt. Schauen wir uns das Beispiel an:

Hauptpaket
importieren (
"fmt"
"Fehler"
"crypto/sha256"
"kodierung/base64"
)
func main()
someText := "shubham"
hash, err := hashTextTo32Bytes(someText)
fmt.Printf("%s\n %s", hash, err)

func hashTextTo32Bytes(hashThis string) (gehashter String, Fehlerfehler)
if len(hashThis) == 0
Rückgabe "", Fehler.New("Keine Eingabe bereitgestellt")

hasher := sha256.Neu()
hasher.Schreiben([]byte(hashThis))
stringToSHA256 := base64.URL-Codierung.EncodeToString(Hasher.Summe (null))
// Reduziere die Länge auf 32 Byte und kehre zurück.
return stringToSHA256[:32], nil

Wir haben zunächst mit der Erstellung eines Hashers begonnen. Anschließend haben wir damit den Hash in ein Byte-Array geschrieben. Schließlich codieren wir den String und geben die 32 Bit Hash zurück.

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

Hashing und Abgleich von Passwörtern

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

Wir werden auch eine Funktion einfügen, die das gehashte Passwort mit einem bestimmten String abgleicht. Auf diese Weise können wir auch überprüfen, ob das vom Benutzer angegebene Passwort korrekt ist.  Bevor dieser Code ausgeführt wird, muss das Golang-Paket für bcrypt mit dem folgenden Befehl installiert werden:

# geh "golang .".org/x/crypto/bcrypt"

Dann können Sie diesen Code ausführen:

Hauptpaket
"fmt" importieren
"golang . importieren.org/x/crypto/bcrypt"
func HashPassword(Passwort-String) (String, Fehler)
Bytes, err := bcrypt.GenerateFromPassword([]Byte(Passwort), 14)
Rückgabestring (Bytes), err

func CheckPasswordHash(Passwort, Hash-String) bool
err := bcrypt.CompareHashAndPassword([]Byte(Hash), []Byte(Passwort))
Rückgabefehler == null

func main()
myPwd := "shubham"
bereitgestelltHash, _ := HashPassword(myPwd)
fmt.Println("Passwort:", myPwd)
fmt.Println("Hash:", bereitgestelltHash)
isMatch := CheckPasswordHash(myPwd, bereitgestellterHash)
fmt.Println("Matched ?:", isMatch)

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

Fazit

In diesem Beitrag haben wir einfache, aber nützliche Beispiele dafür untersucht, wie wir Krypto-Pakete verwenden können, um Aktionen durchzuführen, die in unseren Anwendungen sehr wichtig und nützlich sind.

So ändern Sie Mauszeiger- und Cursorgröße, Farbe und Schema unter Windows 10
Der Mauszeiger und der Cursor in Windows 10 sind sehr wichtige Aspekte des Betriebssystems. Dies kann auch für andere Betriebssysteme gesagt werden, a...
Kostenlose und Open-Source-Spiele-Engines für die Entwicklung von Linux-Spielen
Dieser Artikel behandelt eine Liste von kostenlosen und Open-Source-Spiele-Engines, die für die Entwicklung von 2D- und 3D-Spielen unter Linux verwend...
Shadow of the Tomb Raider für Linux Tutorial
Shadow of the Tomb Raider ist die zwölfte Erweiterung der Tomb Raider-Reihe – ein Action-Adventure-Franchise von Eidos Montrealdos. Das Spiel wurde vo...