golang

Pacchetto Cripto Golang

Pacchetto Cripto Golang
In questa lezione sul pacchetto Crypto in Golang, studieremo vari esempi sulla gestione e la creazione di cifrari in Go e vedremo come il pacchetto Crypto ci aiuta per quanto riguarda la gestione dei cifrari nel linguaggio di programmazione Go. Inizieremo ora.

A partire da Go

Giusto per essere sicuri di essere sulla stessa pagina, ecco la struttura di directory che ho creato per il mio programma Hello World:

Ecco il programma che abbiamo creato:

pacchetto principale
importare "fmt"
funzione principale()
fmt.Printf("Ciao, mondo.\n")

Possiamo eseguire il programma sopra con il seguente comando:

vai a correre ciao.partire

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

Ora sembra a posto. Passiamo alla nostra agenda principale.

Pacchetto di criptovalute nel Golang

Usare Crypto in Golang non è molto facile da capire. Ciò è dovuto ai costrutti che fornisce e all'algoritmo che segue per ottenere la crittografia e la decrittografia.

In questa lezione studieremo questi punti:

Iniziamo con l'hashing e il confronto delle password.

Crittografia SHA256

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

pacchetto principale
importazione (
"fm"
"errori"
"cripto/sha256"
"codifica/base64"
)
funzione principale()
someText := "shubham"
hash, err := hashTextTo32Bytes(someText)
fmt.Printf("%s\n %s", hash, err)

func hashTextTo32Bytes(hashThis stringa) (stringa con hash, errore err)
if len(hashThis) == 0
restituisce "", errori.Nuovo("Nessun input fornito")

hasher := sha256.Nuovo()
hasher.Scrivi([]byte(hashThis))
stringToSHA256 := base64.Codifica URL.EncodeToString(hasher.Somma (zero))
// Riduce la lunghezza a 32 byte e ritorna.
stringa di ritornoToSHA256[:32], zero

Abbiamo iniziato creando inizialmente un hash. In seguito, lo 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:

Hashing e corrispondenza password

Ora utilizzeremo finalmente bcrypt per produrre password hash. Manterremo le funzioni dirette e semplici.

Includeremo anche una funzione che abbina la password con hash a una determinata stringa. In questo modo, possiamo anche confermare se la password fornita dall'utente è corretta.  Prima di eseguire questo codice sarà necessario installare il pacchetto golang per bcrypt con il seguente comando:

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

Quindi puoi eseguire questo codice:

pacchetto principale
importare "fmt"
import "golang.org/x/crypto/bcrypt"
func HashPassword (stringa di password) (stringa, errore)
byte, err := bcrypt.GenerateFromPassword([]byte(password), 14)
stringa di ritorno (byte), err

func CheckPasswordHash(password, stringa hash) bool
err := bcrypt.CompareHashAndPassword([]byte(hash), []byte(password))
return err == nil

funzione principale()
myPwd := "shubham"
fornitoHash, _ := HashPassword(myPwd)
fmt.Println("Password:", myPwd)
fmt.Println("Hash:", fornitoHash)
isMatch := CheckPasswordHash(myPwd, fornitoHash)
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 crypto per fare azioni molto importanti e utili nelle nostre applicazioni.

Vulkan per utenti Linux
Con ogni nuova generazione di schede grafiche, vediamo gli sviluppatori di giochi spingere i limiti della fedeltà grafica e avvicinarsi di un passo al...
OpenTTD vs Simutrans
Creare la tua simulazione di trasporto può essere divertente, rilassante ed estremamente allettante. Ecco perché devi assicurarti di provare quanti pi...
Tutorial OpenTTD
OpenTTD è uno dei giochi di simulazione aziendale più popolari in circolazione. In questo gioco, devi creare una meravigliosa attività di trasporto. T...