golang

Golang Crypto-pakke

Golang Crypto-pakke
I denne leksjonen om Crypto-pakken i Golang, vil vi studere forskjellige eksempler på administrering og oppretting av Ciphers in Go og se hvordan Crypto-pakken hjelper oss med hensyn til Cipher Handling in Go-programmeringsspråk. Vi kommer i gang nå.

Starter med Go

Bare for å være sikker på at vi er på samme side, her er katalogstrukturen som jeg laget for Hello World-programmet:

Her er programmet vi opprettet:

pakke hoved
importer "fmt"
func main ()
fmt.Printf ("Hei, verden.\ n ")

Vi kan kjøre programmet ovenfor med følgende kommando:

gå løp hei.gå

Når vi har kjørt denne kommandoen, er her utgangen du vil se:

Nå ser det bra ut. La oss gå til vår hovedagenda.

Kryptopakke i Golang

Å bruke Crypto i Golang er ikke veldig lett å forstå. Dette er på grunn av konstruksjonene den gir og algoritmen den følger for å oppnå kryptering og dekryptering.

I denne leksjonen vil vi studere disse punktene:

La oss starte med Hashing og sammenligne passord.

SHA256 Kryptering

Vi begynner med noe enkelt. Vi vil prøve et veldig enkelt eksempel på hvordan du utfører en SHA256-kryptering ved bruk av Golang. La oss se på eksemplet:

pakke hoved
importere (
"fmt"
"feil"
"crypto / sha256"
"koding / base64"
)
func main ()
someText: = "shubham"
hash, err: = hashTextTo32Bytes (someText)
fmt.Printf ("% s \ n% s", hash, err)

funk hashTextTo32Bytes (hashThis string) (hashed string, err error)
hvis len (hashThis) == 0
return "", feil.Ny ("Ingen inngang leveres")

hasher: = sha256.Ny()
hasher.Skriv ([] byte (hashThis))
stringToSHA256: = base64.URLE-koding.EncodeToString (hasher.Sum (null))
// Klipp lengden ned til 32 byte og returner.
return stringToSHA256 [: 32], null

Vi startet med å lage en hasher i utgangspunktet. Etter dette brukte vi den til å skrive hasjen i et byte-utvalg. Til slutt koder vi strengen og returnerer 32 bit hash.

Når vi kjører dette eksemplet, får vi følgende utdata:

Hashing og Matching Password

Nå vil vi endelig bruke bcrypt til å produsere Hashed-passord. Vi vil holde funksjonene direkte og enkle.

Vi vil også inkludere en funksjon som samsvarer med det hashede passordet til en gitt streng. På denne måten kan vi også bekrefte om passordet som oppgis av brukeren er riktig.  Før du kjører denne koden, må du installere golang-pakken for bcrypt med følgende kommando:

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

Deretter kan du utføre denne koden:

pakke hoved
importer "fmt"
importer "golang.org / x / crypto / bcrypt "
func HashPassword (passordstreng) (streng, feil)
bytes, err: = bcrypt.GenerateFromPassword ([] byte (passord), 14)
returstreng (byte), feil

funksjon CheckPasswordHash (passord, hash-streng) bool
err: = bcrypt.SammenlignHashAndPassword ([] byte (hash), [] byte (passord))
return err == null

func main ()
myPwd: = "shubham"
providedHash, _: = HashPassword (myPwd)
fmt.Println ("Passord:", myPwd)
fmt.Println ("Hash:", forudsatt Hash)
isMatch: = CheckPasswordHash (myPwd, providedHash)
fmt.Println ("Matchet ?: ", isMatch)

Når vi kjører dette eksemplet, får vi følgende utdata:

Konklusjon

I dette innlegget studerte vi enkle, men nyttige eksempler på hvordan vi kan bruke kryptopakke til å gjøre handlinger som er veldig viktige og nyttige i applikasjonene våre.

OpenTTD Tutorial
OpenTTD er et av de mest populære forretningssimuleringsspillene der ute. I dette spillet må du lage en fantastisk transportvirksomhet. Du begynner im...
SuperTuxKart for Linux
SuperTuxKart er en flott tittel designet for å gi deg Mario Kart-opplevelsen gratis på Linux-systemet ditt. Det er ganske utfordrende og morsomt å spi...
Kjemp om Wesnoth-opplæringen
Kampen om Wesnoth er et av de mest populære open source-strategispillene du kan spille på dette tidspunktet. Ikke bare har dette spillet vært i utvikl...