golang

Paket Crypto Golang

Paket Crypto Golang
Dalam pelajaran tentang paket Crypto di Golang ini, kita akan mempelajari berbagai contoh tentang mengelola dan membuat Cipher di Go dan melihat bagaimana paket Crypto membantu kita dalam menangani Cipher Handling dalam bahasa pemrograman Go. Kita akan mulai sekarang.

Dimulai dengan Go

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

Berikut adalah program yang kami buat:

paket utama
impor "fmt"
fungsi utama()
fmt.Printf("Halo dunia.\n")

Kita dapat menjalankan program di atas dengan perintah berikut:

pergi lari halo.Pergilah

Setelah kami menjalankan perintah ini, berikut adalah output yang akan Anda lihat:

Sekarang itu terlihat bagus. Mari beralih ke agenda utama kita.

Paket Crypto di Golang

Menggunakan Crypto di Golang sangat tidak mudah dimengerti. Ini karena konstruksi yang diberikannya dan algoritme yang diikutinya untuk mencapai enkripsi dan dekripsi.

Dalam pelajaran ini, kita akan mempelajari poin-poin ini:

Mari kita mulai dengan Hashing dan membandingkan kata sandi.

Enkripsi SHA256

Kita akan mulai dengan yang agak sederhana. Kami akan mencoba contoh yang sangat sederhana tentang cara melakukan enkripsi SHA256 menggunakan Golang. Mari kita lihat contohnya:

paket utama
impor (
"fmt"
"kesalahan"
"kripto/sha256"
"pengkodean/base64"
)
fungsi utama()
someText := "shubham"
hash, err := hashTextTo32Bytes(someText)
fmt.Printf("%s\n %s", hash, err)

func hashTextTo32Bytes(hashThis string) (hash string, err error)
if len(hashThis) == 0
kembali "", kesalahan.Baru("Tidak ada masukan yang diberikan")

hasher := sha256.Baru()
penggiling daging.Tulis([]byte(hashThis))
stringToSHA256 := base64.Pengodean URL.EncodeToString(hasher.Jumlah (nol))
// Potong panjangnya menjadi 32 byte dan kembalikan.
kembalikan stringToSHA256[:32], nihil

Kami mulai dengan membuat hasher pada awalnya. Setelah ini, kami menggunakannya untuk menulis hash dalam array byte. Akhirnya, kami menyandikan String dan mengembalikan 32 bit hash.

Ketika kita menjalankan contoh ini, kita akan mendapatkan output berikut:

Hashing dan Mencocokkan Kata Sandi

Sekarang, kami akhirnya akan menggunakan bcrypt untuk menghasilkan kata sandi Hash. Kami akan menjaga fungsinya tetap langsung dan sederhana.

Kami juga akan menyertakan fungsi yang cocok dengan kata sandi hash ke String yang diberikan. Dengan cara ini, kami juga dapat mengonfirmasi apakah kata sandi yang diberikan oleh pengguna benar.  Sebelum menjalankan kode ini perlu menginstal paket golang untuk bcrypt dengan perintah berikut:

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

Kemudian Anda dapat menjalankan kode ini:

paket utama
impor "fmt"
impor "golang".org/x/crypto/bcrypt"
func HashPassword(string kata sandi) (string, kesalahan)
byte, err := bcrypt.HasilkanDariKata Sandi([]byte(kata sandi), 14)
kembalikan string(byte), err

func CheckPasswordHash(kata sandi, string hash) bool
salah := bcrypt.BandingkanHashAndPassword([]byte(hash), []byte(password))
kembali err == nihil

fungsi utama()
myPwd := "shubham"
disediakanHash, _ := HashPassword(myPwd)
fmt.Println("Password :", myPwd)
fmt.Println("Hash :", disediakanHash)
isMatch := CheckPasswordHash(myPwd, disediakanHash)
fmt.Println("Cocok ?:", isMatch)

Ketika kita menjalankan contoh ini, kita akan mendapatkan output berikut:

Kesimpulan

Dalam posting ini, kami mempelajari contoh sederhana namun berguna tentang bagaimana kami dapat menggunakan paket crypto untuk melakukan tindakan yang sangat penting dan berguna dalam aplikasi kami.

Tombol klik kiri mouse tidak berfungsi pada Windows 10
Jika Anda menggunakan mouse khusus dengan laptop, atau komputer desktop, tetapi but tombol klik kiri mouse tidak berfungsi pada Windows 10/8/7 untuk b...
Kursor melompat atau bergerak secara acak saat mengetik di Windows 10
Jika Anda menemukan bahwa kursor mouse Anda melompat atau bergerak sendiri, secara otomatis, acak saat mengetik di laptop atau komputer Windows, maka ...
Cara membalikkan arah gulir Mouse dan Touchpads di Windows 10
Mouse dan Panel sentuhs tidak hanya membuat komputasi menjadi mudah tetapi juga lebih efisien dan tidak memakan banyak waktu. Kami tidak dapat membaya...