Alustades Go-ga
Lihtsalt veendumaks, et oleme samal lehel, on siin kataloogistruktuur, mille tegin oma Hello Worldi programmi jaoks:
Siin on meie loodud programm:
paketi peamineimport "fmt"
func main ()
fmt.Printf ("Tere, maailm.\ n ")
Saame ülaltoodud programmi käivitada järgmise käsuga:
mine jookse tere.mineKui oleme selle käsu käivitanud, näete siin väljundit:
Nüüd näeb see hea välja. Liigume oma põhiprogrammi juurde.
Krüptopakett Golangis
Krüpto kasutamist Golangis pole eriti lihtne mõista. Selle põhjuseks on selle pakutavad konstruktsioonid ja krüpteerimise ja dekrüpteerimise saavutamiseks järgnev algoritm.
Selles õppetükis uurime neid punkte:
- SHA256 krüptimine
- Kuidas kasutada bcryptit veebirakendustes stringide nagu paroolide krüptimiseks
- AES-i krüptimise ja dekrüpteerimise kasutamine
Alustame räsimisest ja paroolide võrdlemisest.
SHA256 krüptimine
Alustame mõnevõrra lihtsast. Proovime väga lihtsat näidet, kuidas SHA256 krüptida Golangi abil. Vaatame näidet:
paketi peamineimport (
"fmt"
"vead"
"krüpto / sha256"
"encoding / base64"
)
func main ()
someText: = "šubham"
hash, err: = hashTextTo32Bytes (someText)
fmt.Printf ("% s \ n% s", räsi, eksimine)
func hashTextTo32Bytes (hashThis string) (räsitud string, viga viga)
kui len (hashThis) == 0
return "", vead.Uus ("Sisendit ei tarnita")
räsi: = sha256.Uus ()
räsi.Kirjutage ([] bait (hashThis))
stringToSHA256: = alus64.URLEkodeerimine.EncodeToString (räsi.Summa (null))
// Lõigake pikkus 32 baiti ja tagastage.
tagastage stringToSHA256 [: 32], null
Alustasime esialgu räsi loomisest. Pärast seda kasutasime seda räsi kirjutamiseks baitide massiivi. Lõpuks kodeerime stringi ja tagastame räsi 32 bitti.
Selle näite käivitamisel saame järgmise väljundi:
Räsimine ja parooli sobitamine
Nüüd kasutame lõpuks räsitud paroolide tootmiseks bcrypt. Hoiame funktsioonid otsesed ja lihtsad.
Lisame ka funktsiooni, mis sobib räsitud parooliga antud stringiga. Nii saame ka kinnitada, kas kasutaja poolt antud parool on õige. Enne selle koodi käivitamist peate installima bcrypt paketi golang järgmise käsuga:
# mine võta "golang.org / x / crypto / bcrypt "Seejärel saate selle koodi käivitada:
paketi peamineimport "fmt"
import "golang.org / x / crypto / bcrypt "
func HashPassword (paroolistring) (string, viga)
baidid, viga: = bcrypt.GenerateFromPassword ([] bait (parool), 14)
tagastage string (baidid), viga
func CheckPasswordHash (parool, räsimisstring) bool
eksima: = bcrypt.VõrdleHashAndPassword ([] bait (räsi), [] bait (parool))
tagastamine viga == null
func main ()
myPwd: = "šubham"
biztosítottHash, _: = HashPassword (myPwd)
fmt.Println ("Parool:", myPwd)
fmt.Println ("Hash:", tingimuselHash)
isMatch: = CheckPasswordHash (myPwd, biztosítottHash)
fmt.Println ("Sobitatud ?: ", onMatch)
Selle näite käivitamisel saame järgmise väljundi:
Järeldus
Selles postituses uurisime lihtsaid, kuid kasulikke näiteid selle kohta, kuidas saame krüptopaketti kasutada oma rakendustes väga oluliste ja kasulike toimingute tegemiseks.