Golang

Golang Crypto-pakke

Golang Crypto-pakke
I denne lektion om Crypto-pakke i Golang vil vi studere forskellige eksempler på styring og oprettelse af Ciphers in Go og se, hvordan Crypto-pakke hjælper os med hensyn til Cipher Handling in Go programmeringssprog. Vi kommer i gang nu.

Startende med Go

Bare for at sikre, at vi er på samme side, her er katalogstrukturen, som jeg lavede til mit Hello World-program:

Her er det program, vi oprettede:

pakke hoved
importer "fmt"
funk main ()
fmt.Printf ("Hej verden.\ n ")

Vi kan køre ovenstående program med følgende kommando:

gå løb hej.gå

Når vi har kørt denne kommando, er det output, du vil se:

Nu ser det godt ud. Lad os gå til vores hoveddagsorden.

Kryptopakke i Golang

Brug af Crypto i Golang er ikke særlig let at forstå. Dette skyldes de konstruktioner, den giver, og algoritmen, den følger for at opnå kryptering og dekryptering.

I denne lektion vil vi studere disse punkter:

Lad os starte med Hashing og sammenligne adgangskoder.

SHA256 Kryptering

Vi starter med noget simpelt. Vi vil prøve et meget simpelt eksempel på, hvordan man udfører en SHA256-kryptering ved hjælp af Golang. Lad os se på eksemplet:

pakke hoved
import (
"fmt"
"fejl"
"krypto / sha256"
"kodning / base64"
)
funk main ()
someText: = "shubham"
hash, err: = hashTextTo32Bytes (someText)
fmt.Printf ("% s \ n% s", hash, err)

func hashTextTo32Bytes (hashThis string) (hashed string, err error)
hvis len (hashThis) == 0
return "", fejl.Ny ("Ingen input leveret")

hasher: = sha256.Ny()
hasher.Skriv ([] byte (hashThis))
stringToSHA256: = base64.URLE-kodning.EncodeToString (hasher.Summen (nul))
// Klip længden ned til 32 byte, og vend tilbage.
return stringToSHA256 [: 32], nul

Vi startede med at oprette en hasher oprindeligt. Efter dette brugte vi det til at skrive hashen i et byte-array. Endelig koder vi strengen og returnerer de 32 bit hash.

Når vi kører dette eksempel, får vi følgende output:

Hashing og Matching Password

Nu bruger vi endelig bcrypt til at producere Hashed-adgangskoder. Vi holder funktionerne direkte og enkle.

Vi inkluderer også en funktion, der matcher den hashede adgangskode til en given streng. På denne måde kan vi også bekræfte, om adgangskoden fra brugeren er korrekt.  Før du kører denne kode, skal du installere golang-pakken til bcrypt med følgende kommando:

# go get "golang.org / x / crypto / bcrypt "

Derefter kan du udføre denne kode:

pakke hoved
importer "fmt"
importer "golang.org / x / crypto / bcrypt "
func HashPassword (adgangskodestreng) (streng, fejl)
bytes, err: = bcrypt.GenerateFromPassword ([] byte (password), 14)
return streng (bytes), err

func CheckPasswordHash (adgangskode, hashstreng) bool
err: = bcrypt.CompareHashAndPassword ([] byte (hash), [] byte (password))
return err == nul

funk main ()
myPwd: = "shubham"
providedHash, _: = HashPassword (myPwd)
fmt.Println ("Adgangskode:", myPwd)
fmt.Println ("Hash:", forudsat Hash)
isMatch: = CheckPasswordHash (myPwd, forudsatHash)
fmt.Println ("Matchet ?: ", isMatch)

Når vi kører dette eksempel, får vi følgende output:

Konklusion

I dette indlæg studerede vi enkle, men nyttige eksempler på, hvordan vi kan bruge kryptopakke til at udføre handlinger, der er meget vigtige og nyttige i vores applikationer.

Top 10 spil at spille på Ubuntu
Windows-platform har været en af ​​de dominerende platforme til spil på grund af den enorme procentdel af spil, der udvikler sig i dag til indbygget a...
5 bedste arkadespil til Linux
I dag er computere seriøse maskiner, der bruges til spil. Hvis du ikke kan få den nye høje score, ved du hvad jeg mener. I dette indlæg vil du kende n...
Kamp om Wesnoth 1.13.6 Udvikling frigivet
Kamp om Wesnoth 1.13.6 udgivet i sidste måned, er den sjette udviklingsudgivelse i 1.13.x-serien, og den leverer en række forbedringer, især til bruge...