Golang Crypto Package

Golang Crypto Package
I denne leksjonen om kryptopakke i Golang, vil vi studere forskjellige eksempler på å håndtere og lage chiffer i Go og se hvordan kryptopakke hjelper oss med hensyn til chifferhåndtering på go -programmeringsspråk. Vi kommer i gang nå.

Starter med go

Bare for å sikre at vi er på samme side, her er katalogstrukturen jeg laget for Hello World -programmet mitt:

Her er programmet vi opprettet:

pakkehoved
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, her er utgangen du vil se:

Nå ser det bra ut. La oss flytte til hovedagendaen vår.

Kryptopakke i Golang

Å bruke krypto 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:

  • SHA256 kryptering
  • Hvordan bruke BCrypt for å kryptere strenger som passord i webapplikasjonene dine
  • Bruke AES -kryptering og dekryptering

La oss starte med hashing og sammenligne passord.

SHA256 kryptering

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

pakkehoved
import (
"FMT"
"Feil"
"Crypto/Sha256"
"koding/base64"
)
func main ()
somext: = "Shubham"
Hash, feil: = HashTextTo32Bytes (somext)
fmt.Printf (" %s \ n %s", hash, feil)

func hashtextto32bytes (hash thishis streng) (hash -streng, feilfeil)
Hvis len (hashthis) == 0
Returner "", feil.Ny ("Ingen innspill levert")

Hasher: = SHA256.Ny()
Hasher.Skriv ([] byte (hash thishis))
StringToSHA256: = Base64.Urlencoding.EnkodetoString (Hasher.Sum (null))
// kutt lengden ned til 32 byte og returner.
Returner StringTosha256 [: 32], null

Vi startet med å lage en hasher innledningsvis. Etter dette brukte vi den til å skrive hasj i en byte -matrise. Til slutt koder vi strengen og returnerer de 32 hasjbitene.

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

Hashing og matchende passord

Nå vil vi endelig bruke BCrypt for å produsere hashede passord. Vi vil holde funksjonene direkte og enkle.

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

# Gå "Golang.org/x/krypto/bcrypt "

Da kan du utføre denne koden:

pakkehoved
Importer "FMT"
Importer "Golang.org/x/krypto/bcrypt "
func hashpassword (passordstreng) (streng, feil)
byte, feil: = bcrypt.GenerereFromPassword ([] byte (passord), 14)
Returnstreng (byte), feil

func checkPasswordHash (passord, hash -streng) bool
feil: = bcrypt.CompareHashandPassword ([] byte (hash), [] byte (passord))
Returner feil == null

func main ()
MyPWD: = "Shubham"
Leverthash, _: = Hashpassword (MyPWD)
fmt.Println ("Passord:", MyPWD)
fmt.Println ("Hash:", gitthash)
ISMatch: = CheckPasswordHash (MyPWD, Leverthash)
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 veldig viktige og nyttige i applikasjonene våre.