golang

Krypto balíček Golang

Krypto balíček Golang
V tejto lekcii o balíku Crypto v Golangu si preštudujeme rôzne príklady správy a vytvárania šifrovania v Go a ukážeme si, ako nám balíček Crypto pomáha v programovacom jazyku Cipher Handling in Go. Teraz začneme.

Počnúc Go

Aby sme sa uistili, že sme na rovnakej stránke, tu je adresárová štruktúra, ktorú som vytvoril pre svoj program Hello World:

Tu je program, ktorý sme vytvorili:

balíček hlavný
importovať „fmt“
func main ()
fmt.Printf („Ahoj, svet.\ n ")

Vyššie uvedený program môžeme spustiť nasledujúcim príkazom:

choď behať ahoj.choď

Po spustení tohto príkazu uvidíte výstup, ktorý uvidíte:

Teraz to vyzerá dobre. Prejdime k našej hlavnej agende.

Krypto balíček v Golangu

Používanie kryptomeny v Golangu nie je veľmi ľahké pochopiť. Je to tak kvôli konštruktom, ktoré poskytuje, a algoritmu, ktorý používa na dosiahnutie šifrovania a dešifrovania.

V tejto lekcii sa budeme venovať týmto bodom:

Začnime hašovaním a porovnaním hesiel.

Šifrovanie SHA256

Začneme tým trochu jednoduchým. Pokúsime sa o veľmi jednoduchý príklad, ako vykonať šifrovanie SHA256 pomocou Golangu. Pozrime sa na príklad:

balíček hlavný
dovoz (
„fmt“
„chyby“
„crypto / sha256“
„encoding / base64“
)
func main ()
someText: = "shubham"
hash, err: = hashTextTo32Bytes (someText)
fmt.Printf ("% s \ n% s", hash, chyba)

func hashTextTo32Bytes (hashThis string) (hašovaný reťazec, chyba chyby)
if len (hashThis) == 0
návrat "", chyby.Nové („Nie je zadaný žiadny vstup“)

hash: = sha256.Nový()
hasher.Zápis ([] bajt (hashThis))
stringToSHA256: = base64.URLEkódovanie.EncodeToString (hash.Súčet (nula))
// Skráťte dĺžku na 32 bajtov a vráťte sa.
return stringToSHA256 [: 32], nil

Začali sme tým, že sme pôvodne vytvorili hash. Potom sme ho použili na zápis hašovania do bajtového poľa. Nakoniec zakódujeme reťazec a vrátime 32 bitov hash.

Keď spustíme tento príklad, dostaneme nasledujúci výstup:

Hašovacie a zodpovedajúce heslo

Teraz konečne použijeme bcrypt na výrobu hesiel Hashed. Funkcie ponecháme priame a jednoduché.

Zahrnieme tiež funkciu, ktorá zodpovedá hašovanému heslu k danému reťazcu. Týmto spôsobom môžeme tiež potvrdiť, či je heslo poskytnuté používateľom správne.  Pred spustením tohto kódu bude potrebné nainštalovať balík golang pre bcrypt pomocou nasledujúceho príkazu:

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

Potom môžete vykonať tento kód:

balíček hlavný
importovať „fmt“
importovať "golang.org / x / crypto / bcrypt "
func HashPassword (heslo, reťazec) (reťazec, chyba)
bajty, chyba: = bcrypt.GenerateFromPassword ([] bajt (heslo), 14)
návratový reťazec (bajty), chyba

func CheckPasswordHash (heslo, hash reťazec) bool
err: = bcrypt.CompareHashAndPassword ([] bajt (hash), [] bajt (heslo))
return err == nil

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

Keď spustíme tento príklad, dostaneme nasledujúci výstup:

Záver

V tomto príspevku sme študovali jednoduché, ale užitočné príklady toho, ako môžeme pomocou krypto balíka robiť akcie, ktoré sú v našich aplikáciách veľmi dôležité a užitočné.

Hry Ako zobraziť prekrytie OSD v linuxových aplikáciách a hrách na celú obrazovku
Ako zobraziť prekrytie OSD v linuxových aplikáciách a hrách na celú obrazovku
Hranie hier na celú obrazovku alebo používanie aplikácií v režime rozptýlenia zadarmo na celú obrazovku vás môže odrezať od relevantných systémových i...
Hry Top 5 kariet na zachytávanie hier
Top 5 kariet na zachytávanie hier
Všetci sme videli a milovali streamovanie hier na YouTube. PewDiePie, Jakesepticye a Markiplier sú iba niektorí z najlepších hráčov, ktorí zarobili mi...
Hry Ako vyvíjať hru v systéme Linux
Ako vyvíjať hru v systéme Linux
Pred desiatimi rokmi by len málo používateľov Linuxu predpovedalo, že ich obľúbený operačný systém bude jedného dňa populárnou hernou platformou pre k...