Pacchetto crittografico Golang

Pacchetto crittografico Golang
In questa lezione sul pacchetto Crypto a Golang, studieremo vari esempi sulla gestione e nella creazione di cifre in Go e a vedere come il pacchetto crittografico ci aiuta a gestire la gestione dei cifraggi nel linguaggio di programmazione Go. Inizieremo ora.

A partire da Go

Solo per assicurarci di essere sulla stessa pagina, ecco la struttura della directory che ho realizzato per il mio programma Hello World:

Ecco il programma che abbiamo creato:

Pacchetto principale
Importa "FMT"
func main ()
fmt.Printf ("Ciao, mondo.\N")

Possiamo eseguire il programma sopra con il comando seguente:

Vai a correre ciao.andare

Una volta eseguito questo comando, ecco l'output che vedrai:

Ora sembra buono. Passiamo alla nostra agenda principale.

Pacchetto crittografico in golang

L'uso della criptola in Golang non è molto facile da capire. Ciò è dovuto ai costrutti che fornisce e dell'algoritmo che segue per ottenere crittografia e decrittografia.

In questa lezione, studieremo questi punti:

  • SHA256 Crittografia
  • Come utilizzare bcrypt per crittografare stringhe come password nelle tue applicazioni Web
  • Usando la crittografia e la decrittografia AES

Cominciamo con hashing e confrontando le password.

SHA256 Crittografia

Inizieremo con un po 'semplice. Proveremo un esempio molto semplice su come eseguire una crittografia Sha256 usando Golang. Diamo un'occhiata all'esempio:

Pacchetto principale
importazione (
"FMT"
"errori"
"Crypto/Sha256"
"codifica/base64"
)
func main ()
SomeText: = "Shubham"
Hash, err: = HashText32Bytes (SomeText)
fmt.Printf (" %s \ n %s", hash, err)

Func HashTextTo32Bytes (HashThis String) (String hashed, ERR ERROR)
if len (hashthis) == 0
restituire "", errori.Nuovo ("nessun input fornito")

Hasher: = Sha256.Nuovo()
hasher.Scrivi ([] byte (hashthis))
Stringtosha256: = base64.Urlencoding.Codetostring (hasher.Somma (zero))
// tagliare la lunghezza a 32 byte e tornare.
return Stringtosha256 [: 32], zero

Abbiamo iniziato creando inizialmente un hasher. In seguito, l'abbiamo usato per scrivere l'hash in un array di byte. Infine, codifichiamo la stringa e restituiamo i 32 bit di hash.

Quando eseguiamo questo esempio, otterremo il seguente output:

Password di hashing e corrispondenza

Ora useremo finalmente BCrypt per produrre password hash. Manteneremo le funzioni dirette e semplici.

Includeremo anche una funzione che corrisponde alla password hash a una determinata stringa. In questo modo, possiamo anche confermare se la password fornita dall'utente è corretta. Prima di eseguire questo codice dovrà installare il pacchetto Golang per BCrypt con il seguente comando:

# vai a prendere "golang.org/x/cripto/bcrypt "

Quindi puoi eseguire questo codice:

Pacchetto principale
Importa "FMT"
Importa "Golang.org/x/cripto/bcrypt "
func hashpassword (password string) (string, errore)
byte, err: = bcrypt.GenerateFrompassword ([] byte (password), 14)
return String (byte), err

Func checkPasswordHash (password, hash String) bool
err: = bcrypt.ConfrontHashandPassword ([] byte (hash), [] byte (password))
return err == nil

func main ()
mypwd: = "shubham"
fornito, _: = hashpassword (mypwd)
fmt.Println ("password:", mypwd)
fmt.Println ("hash:", fornito)
IsMatch: = CheckPasswordHash (mypwd, fornito)
fmt.Println ("abbinato ?: ", ismatch)

Quando eseguiamo questo esempio, otterremo il seguente output:

Conclusione

In questo post, abbiamo studiato esempi semplici ma utili su come possiamo usare il pacchetto crittografico per fare azioni molto importanti e utili nelle nostre applicazioni.