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 hovedimporter "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:
- SHA256-kryptering
- Hvordan bruke bcrypt til å kryptere strenger som passord i webapplikasjonene dine
- Bruker AES-kryptering og dekryptering
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 hovedimportere (
"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 hovedimporter "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.