golang

Pakej Crypto Golang

Pakej Crypto Golang
Dalam pelajaran ini mengenai pakej Crypto di Golang, kami akan mempelajari pelbagai contoh mengenai mengurus dan membuat Ciphers in Go dan melihat bagaimana pakej Crypto membantu kami dalam hal pengaturcaraan Cipher Handling in Go. Kami akan bermula sekarang.

Bermula dengan Go

Untuk memastikan kami berada di halaman yang sama, berikut adalah struktur direktori yang saya buat untuk program Hello World saya:

Inilah program yang kami buat:

pakej utama
import "fmt"
func utama ()
fmt.Printf ("Helo, dunia.\ n ")

Kita boleh menjalankan program di atas dengan arahan berikut:

pergi lari hello.pergi

Sebaik sahaja kami menjalankan perintah ini, berikut adalah output yang akan anda lihat:

Sekarang kelihatan baik. Mari beralih ke agenda utama kami.

Pakej Crypto di Golang

Menggunakan Crypto di Golang tidak begitu mudah difahami. Ini kerana konstruk yang disediakannya dan algoritma yang diikuti untuk mencapai penyulitan dan penyahsulitan.

Dalam pelajaran ini, kita akan mengkaji perkara-perkara berikut:

Mari mulakan dengan Hashing dan membandingkan kata laluan.

Penyulitan SHA256

Kita akan mulakan dengan agak sederhana. Kami akan mencuba contoh yang sangat mudah mengenai cara melakukan penyulitan SHA256 menggunakan Golang. Mari lihat contohnya:

pakej utama
mengimport (
"fmt"
"kesilapan"
"crypto / sha256"
"pengekodan / base64"
)
func utama ()
someText: = "shubham"
hash, err: = hashTextTo32Bytes (someText)
fmt.Printf ("% s \ n% s", hash, salah)

func hashTextTo32Bytes (hashThis string) (rentetan hash, ralat kesalahan)
jika len (hashThis) == 0
kembali "", kesilapan.Baru ("Tidak ada input yang diberikan")

hasher: = sha256.Baru()
pencuci.Tulis ([] bait (hashThis))
stringToSHA256: = asas64.Pengekodan URLE.EncodeToString (hasher.Jumlah (nihil))
// Potong panjang hingga 32 bait dan kembali.
kembali taliToSHA256 [: 32], nihil

Kami mulakan dengan membuat hasher pada mulanya. Setelah ini, kami menggunakannya untuk menulis hash dalam tatasusunan bait. Akhirnya, kami mengekodkan String dan mengembalikan hash 32 bit.

Apabila kita menjalankan contoh ini, kita akan mendapat output berikut:

Kata Laluan Mencirikan dan Memadankan

Sekarang, kita akhirnya akan menggunakan bcrypt untuk menghasilkan kata laluan Hashed. Kami akan menjaga fungsi secara langsung dan sederhana.

Kami juga akan menyertakan fungsi yang memadankan kata laluan yang dicincang dengan String tertentu. Dengan cara ini, kita juga dapat mengesahkan jika kata laluan yang diberikan oleh pengguna betul.  Sebelum menjalankan kod ini, anda perlu memasang pakej golang untuk bcrypt dengan arahan berikut:

# pergi dapatkan "golang.org / x / crypto / bcrypt "

Kemudian anda boleh melaksanakan kod ini:

pakej utama
import "fmt"
import "golang.org / x / crypto / bcrypt "
func HashPassword (rentetan kata laluan) (rentetan, ralat)
bait, err: = bcrypt.JanaFromPassword ([] bait (kata laluan), 14)
rentetan kembali (bait), salah

func CheckPasswordHash (kata laluan, tali hash) bool
err: = bcrypt.BandingkanHashAndPassword ([] bait (hash), [] bait (kata laluan))
kembali err == nihil

func utama ()
myPwd: = "shubham"
disediakanHash, _: = HashPassword (myPwd)
fmt.Println ("Kata Laluan:", myPwd)
fmt.Println ("Hash:", disediakanHash)
isMatch: = CheckPasswordHash (myPwd, disediakanHash)
fmt.Println ("Sesuai ?: ", isMatch)

Apabila kita menjalankan contoh ini, kita akan mendapat output berikut:

Kesimpulannya

Dalam catatan ini, kami mengkaji contoh mudah tetapi berguna mengenai bagaimana kami dapat menggunakan pakej crypto untuk melakukan tindakan yang sangat penting dan berguna dalam aplikasi kami.

HD Remastered Games untuk Linux yang Tidak Pernah Melancarkan Linux Sebelumnya
Banyak pembangun dan penerbit permainan hadir dengan penghapus HD permainan lama untuk memperpanjang usia francais, harap peminat meminta keserasian d...
Cara Menggunakan AutoKey untuk Mengautomasikan Permainan Linux
AutoKey adalah utiliti automasi desktop untuk Linux dan X11, yang diprogramkan dalam Python 3, GTK dan Qt. Dengan menggunakan skrip dan fungsi MACRO, ...
Cara Menunjukkan Kaunter FPS dalam Permainan Linux
Permainan Linux mendapat dorongan utama ketika Valve mengumumkan sokongan Linux untuk klien Steam dan permainan mereka pada tahun 2012. Sejak itu, ban...