golangas

„Golang“ šifravimo paketas

„Golang“ šifravimo paketas
Šioje „Golang“ šifravimo paketo pamokoje išnagrinėsime įvairius „Ciphers in Go“ valdymo ir sukūrimo pavyzdžius ir pamatysime, kaip „Crypto“ paketas mums padeda kalbant apie „Cipher Handling in Go“ programavimo kalbą. Mes pradėsime dabar.

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 pagrindinis
importuoti „fmt“
func main ()
fmt.Printf ("Sveiki, pasauli.\ n ")

Mes galime paleisti pirmiau nurodytą programą naudodami šią komandą:

eik bėgti labas.eik

Kai 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:

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 pagrindinis
importas (
„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 pagrindinis
importuoti „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.

Kaip įdiegti ir žaisti „Doom“ sistemoje „Linux“
Įvadas į Doom „Doom“ serija atsirado 90-aisiais, išleidus originalų „Doom“. Tai buvo tiesioginis hitas, o nuo to laiko žaidimų serija gavo daugybę apd...
„Vulkan“, skirta „Linux“ vartotojams
Kiekvienos naujos kartos grafikos plokštės matome, kaip žaidimų kūrėjai peržengia grafinės ištikimybės ribas ir artėja prie fotorealizmo. Nepaisant vi...
„OpenTTD“ ir „Simutrans“
Sukurti savo transporto modeliavimą gali būti smagu, atpalaiduojanti ir be galo viliojanti. Štai kodėl jūs turite įsitikinti, kad išbandėte kuo daugia...