Kezdve a Go-val
Csak azért, hogy megbizonyosodjunk arról, hogy ugyanazon az oldalon vagyunk, itt van a könyvtárszerkezet, amelyet a Hello World programhoz készítettem:
Itt van a létrehozott program:
csomag főimport "fmt"
func main ()
fmt.Printf ("Helló, világ!.\ n ")
A fenti programot a következő paranccsal futtathatjuk:
menj szaladj hello.megyMiután futtattuk ezt a parancsot, itt látható a kimenet:
Most ez jól néz ki. Térjünk át a fő menetrendünkre.
Kripto csomag Golangban
A Crypto használatát Golangban nem nagyon könnyű megérteni. Ennek oka az általa biztosított konstrukciók és az általa követett algoritmus a titkosítás és a visszafejtés elérése érdekében.
Ebben a leckében ezeket a pontokat tanulmányozzuk:
- SHA256 titkosítás
- A bcrypt használata a karakterláncok, például jelszavak titkosításához a webalkalmazásokban
- AES titkosítás és visszafejtés használata
Kezdjük hash-szal és a jelszavak összehasonlításával.
SHA256 titkosítás
Kezdjük valamivel egyszerűbbel. Megpróbálunk egy nagyon egyszerű példát arra, hogyan lehet egy SHA256 titkosítást végrehajtani a Golang segítségével. Nézzük meg a példát:
csomag főimport (
"fmt"
"hibák"
"crypto / sha256"
"encoding / base64"
)
func main ()
someText: = "shubham"
hash, err: = hashTextTo32Bytes (someText)
fmt.Printf ("% s \ n% s", hash, tévedés)
func hashTextTo32Bytes (hashThis string) (hash karakterlánc, hibás hiba)
ha len (hashThis) == 0
return "", hibák.Új ("Nincs bemenet megadva")
hasher: = sha256.Új()
hasher.Írás ([] bájt (hashThis))
stringToSHA256: = alap64.URLEkódolás.EncodeToString (hasher.Összeg (nulla)
// Vágja le a hosszt 32 bájtra, és térjen vissza.
return stringToSHA256 [: 32], nulla
Először hash létrehozásával kezdtük. Ezt követően arra használtuk, hogy a kivonatot bájt tömbbe írjuk. Végül kódoljuk a String-et, és visszaadjuk a 32 bit hash-ot.
Amikor futtatjuk ezt a példát, a következő kimenetet kapjuk:
Hashing és egyező jelszó
Most végre a bcrypt-et fogjuk használni a hasított jelszavak előállításához. A funkciókat közvetlenek és egyszerűek fogjuk tartani.
Tartalmazunk egy olyan funkciót is, amely a kivonatolt jelszót egy adott karakterlánchoz illeszti. Így megerősíthetjük azt is, hogy a felhasználó által megadott jelszó helyes-e. A kód futtatása előtt telepítenie kell a golang csomagot a bcrypt számára a következő paranccsal:
# go get "golang.org / x / crypto / bcrypt "Ezután végrehajthatja ezt a kódot:
csomag főimport "fmt"
import "golang.org / x / crypto / bcrypt "
func HashPassword (jelszó karakterlánc) (karakterlánc, hiba)
bájt, tévedés: = bcrypt.GenerateFromPassword ([] bájt (jelszó), 14)
return string (byte), tévedés
func CheckPasswordHash (jelszó, hash karakterlánc) bool
tévedés: = bcrypt.CompareHashAndPassword ([] byte (hash), [] byte (password))
return err == nulla
func main ()
myPwd: = "shubham"
biztosítottHash, _: = HashPassword (myPwd)
fmt.Println ("Jelszó:", myPwd)
fmt.Println ("Hash:", feltételes hash)
isMatch: = CheckPasswordHash (myPwd, biztosítottHash)
fmt.Println ("Megfelelő ?: ", isMatch)
Amikor futtatjuk ezt a példát, a következő kimenetet kapjuk:
Következtetés
Ebben a bejegyzésben egyszerű, de hasznos példákat tanulmányoztunk arról, hogyan használhatjuk a titkosítási csomagot az alkalmazásokban nagyon fontos és hasznos műveletek végrehajtására.