Sākot ar Go
Lai pārliecinātos, ka atrodamies vienā lapā, šeit ir direktoriju struktūra, ko izveidoju savai Hello World programmai:
Šeit ir programma, kuru mēs izveidojām:
paketes galvenāimportēt "fmt"
func main ()
fmt.Printf ("Sveika, pasaule.\ n ")
Mēs varam palaist iepriekš minēto programmu ar šādu komandu:
ej skriet sveiki.aizietKad mēs palaidīsim šo komandu, šeit redzēsit izeju:
Tagad tas izskatās labi. Pārejam uz mūsu galveno darba kārtību.
Kripto pakete Golangā
Kripto izmantošana Golangā nav ļoti viegli saprotama. Tas ir saistīts ar tā piedāvātajām konstrukcijām un algoritmu, ar kuru tas tiek panākts, lai panāktu šifrēšanu un atšifrēšanu.
Šajā nodarbībā mēs pētīsim šos punktus:
- SHA256 šifrēšana
- Kā izmantot bcrypt, lai šifrētu virknes, piemēram, paroles, jūsu tīmekļa lietojumprogrammās
- Izmantojot AES šifrēšanu un atšifrēšanu
Sāksim ar hashingu un paroļu salīdzināšanu.
SHA256 šifrēšana
Mēs sāksim ar nedaudz vienkāršu. Mēs izmēģināsim ļoti vienkāršu piemēru, kā veikt SHA256 šifrēšanu, izmantojot Golang. Apskatīsim piemēru:
paketes galvenāimports (
"fmt"
"kļūdas"
"crypto / sha256"
"kodējums / base64"
)
func main ()
someText: = "šubhems"
hash, err: = hashTextTo32Bytes (someText)
fmt.Printf ("% s \ n% s", jaucējkrāsa, kļūda)
func hashTextTo32Bytes (hashThis string) (jaukta virkne, kļūdas kļūda)
ja len (hashThis) == 0
atgriešanās "", kļūdas.Jauns ("Nav ievadīta ievade")
jaucējs: = sha256.Jauns ()
hasher.Rakstīt ([] baits (hashThis))
stringToSHA256: = base64.URLEkodēšana.EncodeToString (hasher.Summa (nulle))
// Izgrieziet garumu līdz 32 baitiem un atgriezieties.
atgriezties stringToSHA256 [: 32], nulle
Sākumā mēs sākotnēji izveidojām jaucēju. Pēc tam mēs to izmantojām, lai rakstītu hash baitu masīvā. Visbeidzot, mēs kodējam virkni un atgriežam 32 bitus jaucējkrāsa.
Palaižot šo piemēru, mēs iegūsim šādu rezultātu:
Jaukšanas un saskaņošanas parole
Tagad mēs beidzot izmantosim bcrypt, lai izveidotu Hashed paroles. Mēs saglabāsim funkcijas tieši un vienkārši.
Mēs iekļausim arī funkciju, kas sajaukto paroli saskaņo ar noteiktu virkni. Tādā veidā mēs varam arī apstiprināt, vai lietotāja norādītā parole ir pareiza. Pirms šī koda palaišanas būs jāinstalē pakete golang bcrypt ar šādu komandu:
# iet paņemt "golang.org / x / crypto / bcrypt "Tad jūs varat izpildīt šo kodu:
paketes galvenāimportēt "fmt"
ievest "golang.org / x / crypto / bcrypt "
func HashPassword (paroles virkne) (virkne, kļūda)
baiti, kļūdīties: = bcrypt.GenerateFromPassword ([] baits (parole), 14)
atgriezties virkni (baiti), kļūdīties
func CheckPasswordHash (parole, jaukšanas virkne) bool
kļūdīties: = brypt.CompareHashAndPassword ([] baits (jaucējkrāsa), [] baits (parole))
atgriezties kļūdaini == nulle
func main ()
myPwd: = "šubhems"
numatytaHash, _: = HashPassword (myPwd)
fmt.Println ("Parole:", myPwd)
fmt.Println ("Hash:", nosacījumsHash)
isMatch: = CheckPasswordHash (myPwd, biztosítottHash)
fmt.Println ("Atbilst ?: ", isMatch)
Izpildot šo piemēru, mēs iegūsim šādu izvadi:
Secinājums
Šajā ziņojumā mēs izpētījām vienkāršus, bet noderīgus piemērus par to, kā mēs varam izmantot kriptogrāfijas pakotni, lai veiktu mūsu lietojumprogrammās ļoti svarīgas un noderīgas darbības.