golang

Kripto paket Golang

Kripto paket Golang
U ovoj lekciji o Crypto paketu u Golangu proučit ćemo razne primjere upravljanja i izrade šifri u Gou i vidjeti kako nam Crypto paket pomaže u vezi s Cipher Handling u programskom jeziku Go. Sad ćemo započeti.

Počevši od Go

Samo da bismo bili sigurni da smo na istoj stranici, evo strukture direktorija koju sam napravio za svoj program Hello World:

Evo programa koji smo stvorili:

paket glavni
uvoz "fmt"
func main ()
fmt.Printf ("Zdravo, svijete.\ n ")

Gornji program možemo pokrenuti sljedećom naredbom:

idi trči zdravo.ići

Jednom kada pokrenemo ovu naredbu, evo izlaza koji ćete vidjeti:

Sad to izgleda dobro. Prijeđimo na naš glavni dnevni red.

Kripto paket u Golangu

Korištenje Cryptoa u Golangu nije baš lako razumjeti. To je zbog konstrukcija koje pruža i algoritma koji slijedi za postizanje šifriranja i dešifriranja.

U ovoj ćemo lekciji proučiti ove točke:

Krenimo od raspršivanja i usporedbe lozinki.

SHA256 Šifriranje

Započet ćemo s pomalo jednostavnim. Pokušat ćemo vrlo jednostavan primjer kako izvesti SHA256 enkripciju pomoću Golanga. Pogledajmo primjer:

paket glavni
uvoz (
"fmt"
"pogreške"
"kripto / sha256"
"kodiranje / baza64"
)
func main ()
someText: = "shubham"
hash, err: = hashTextTo32Bytes (someText)
fmt.Ispisf ("% s \ n% s", heš, pogreška)

func hashTextTo32Bytes (hashThis string) (hashed string, error error)
ako je len (hashThis) == 0
povratak "", pogreške.Novo ("Nije dostavljen ulaz")

hasher: = sha256.Novi()
mašina za mljevenje mesa.Zapiši ([] bajt (hashThis))
stringToSHA256: = baza64.URLEncoding.EncodeToString (hasher.Zbroj (nula))
// Smanjimo duljinu na 32 bajta i vratimo.
vrati stringToSHA256 [: 32], nil

U početku smo kreirali hasher. Nakon toga, koristili smo ga za pisanje hasha u bajtni niz. Na kraju kodiramo String i vraćamo 32 bita hasha.

Kada pokrenemo ovaj primjer, dobit ćemo sljedeći izlaz:

Hashing i podudaranje lozinke

Sada ćemo napokon upotrijebiti bcrypt za proizvodnju hashed lozinki. Funkcije će biti izravne i jednostavne.

Također ćemo uključiti funkciju koja podudara raspršenu lozinku s danim nizom. Na ovaj način također možemo potvrditi je li lozinka koju je dao korisnik ispravna.  Prije pokretanja ovog koda morat ćete instalirati paket golang za bcrypt sa sljedećom naredbom:

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

Tada možete izvršiti ovaj kod:

paket glavni
uvoz "fmt"
uvoz "golang.org / x / crypto / bcrypt "
func HashPassword (niz lozinke) (niz, pogreška)
bajtova, pogreška: = bcrypt.GenerateFromPassword ([] bajt (lozinka), 14)
povratni niz (bajtovi), pogreška

func CheckPasswordHash (lozinka, hash string) bool
pogreška: = bcrypt.CompareHashAndPassword ([] bajt (hash), [] bajt (lozinka))
return err == nil

func main ()
myPwd: = "shubham"
providedHash, _: = HashPassword (myPwd)
fmt.Println ("Lozinka:", myPwd)
fmt.Println ("Hash:", pod uvjetomHash)
isMatch: = CheckPasswordHash (myPwd, providedHash)
fmt.Println ("Podudarno ?: ", isMatch)

Kada pokrenemo ovaj primjer, dobit ćemo sljedeći izlaz:

Zaključak

U ovom postu proučavali smo jednostavne, ali korisne primjere kako možemo koristiti kripto paket za radnje vrlo važne i korisne u našim aplikacijama.

Kako snimiti i struji svoju igraću sesiju na Linuxu
U prošlosti se igranje igara smatralo samo hobijem, ali s vremenom je igračka industrija zabilježila ogroman rast u pogledu tehnologije i broja igrača...
Najbolje igre za ručno praćenje
Oculus Quest nedavno je predstavio sjajnu ideju ručnog praćenja bez kontrolera. Sa sve većim brojem igara i aktivnosti koje izvršavaju podršku bilo fo...
Kako prikazati OSD prekrivač u aplikacijama i igrama na cijelom zaslonu za Linux
Igranje igara preko cijelog zaslona ili upotreba aplikacija u režimu preko cijelog zaslona bez ometanja može vas odsjeći od relevantnih informacija o ...