Pradedant nuo „Go“
Norint įsitikinti, kad esame tame pačiame puslapyje, čia yra katalogų struktūra, kurią sukūriau savo „Hello World“ programai:
Čia yra programa, kurią sukūrėme:
paketo pagrindinisimportuoti „fmt“
func main ()
fmt.Printf ("Sveiki, pasauli.\ n ")
Mes galime paleisti pirmiau nurodytą programą naudodami šią komandą:
eik bėgti labas.eikKai paleisime šią komandą, pamatysite išvestį:
Dabar tai atrodo gerai. Pereikime prie savo pagrindinės darbotvarkės.
Šifravimo paketas Golange
Kripto naudojimą „Golang“ nėra labai lengva suprasti. Taip yra dėl jo pateiktų konstrukcijų ir algoritmo, kuriuo jis naudojasi, kad pasiektų šifravimą ir iššifravimą.
Šioje pamokoje išnagrinėsime šiuos dalykus:
- SHA256 šifravimas
- Kaip naudoti „bcrypt“ norint užšifruoti eilučių, pvz., Slaptažodžių, žiniatinklio programose
- Naudojant AES šifravimą ir iššifravimą
Pradėkime nuo maišos ir slaptažodžių palyginimo.
SHA256 šifravimas
Pradėsime nuo šiek tiek paprasto. Išbandysime labai paprastą pavyzdį, kaip atlikti SHA256 šifravimą naudojant „Golang“. Pažvelkime į pavyzdį:
paketo pagrindinisimportas (
„fmt“
„klaidos“
„crypto / sha256“
"kodavimas / base64"
)
func main ()
someText: = "šubhamas"
maiša, klaida: = hashTextTo32Bytes (someText)
fmt.„Printf“ („% s \ n% s“, maiša, klaida)
func hashTextTo32Bytes (hashThis string) (maišos eilutė, klaida klaida)
jei len (hashThis) == 0
grąžinti "", klaidos.Nauja („Nepateikta įvesties“)
maišas: = sha256.Nauja ()
maišas.Rašyti ([] baitas (hashThis))
stringToSHA256: = bazė64.URLEkodavimas.EncodeToString (maišos.Suma (nulis))
// Iškirpkite ilgį iki 32 baitų ir grįžkite.
grąžinti eilutęToSHA256 [: 32], nulis
Pradėjome iš pradžių sukūrę maišytuvą. Po to mes naudojome jį rašydami maišos baitų masyve. Galiausiai užkoduojame eilutę ir grąžiname 32 maišos bitus.
Vykdydami šį pavyzdį gausime tokį išvestį:
Maišos ir atitikimo slaptažodis
Dabar pagaliau naudosime „bcrypt“, kad sukurtume „Hashed“ slaptažodžius. Mes išlaikysime tiesiogines ir paprastas funkcijas.
Mes taip pat įtrauksime funkciją, kuri suderins maišos slaptažodį su tam tikra eilute. Tokiu būdu mes taip pat galime patvirtinti, ar vartotojo pateiktas slaptažodis yra teisingas. Prieš paleisdami šį kodą, turite įdiegti „golang“ paketą „bcrypt“ naudodami šią komandą:
# go get "golangas.org / x / crypto / bcrypt "Tada galite atlikti šį kodą:
paketo pagrindinisimportuoti „fmt“
importas "golangas.org / x / crypto / bcrypt "
func HashPassword (slaptažodžio eilutė) (eilutė, klaida)
baitai, klaida: = bcrypt.GenerateFromPassword ([] baitas (slaptažodis), 14)
grąžinti eilutę (baitus), klaida
func CheckPasswordHash (slaptažodis, maišos eilutė) „Bool“
klysti: = bkriptas.CompareHashAndPassword ([] baitas (maišos), [] baitas (slaptažodis))
grįžti klaida == nulis
func main ()
myPwd: = "shubham"
numatytaHash, _: = HashPassword (myPwd)
fmt.„Println“ („Slaptažodis:“, „myPwd“)
fmt.„Println“ („Hash:“, feltételinis maišas)
isMatch: = CheckPasswordHash („myPwd“, numatytaHash)
fmt.Println ("Atitinka ?: ", isMatch)
Vykdydami šį pavyzdį gausime tokį išvestį:
Išvada
Šiame įraše mes ištyrėme paprastus, bet naudingus pavyzdžius, kaip mes galime naudoti šifravimo paketą, kad atliktume veiksmus, labai svarbius ir naudingus mūsų programose.