Melindungi Kata Laluan di Golang pada Enjin Apl
Mengenai pencincangan kata laluan untuk aplikasi web, keselamatan adalah yang terpenting. Walaupun perpustakaan popular seperti bcrypt tidak sesuai untuk App Engine kerana pergantungan mereka pada panggilan sistem tertentu, terdapat kaedah alternatif yang memberikan tahap perlindungan yang teguh.
Pilihan Pencincangan Selamat
Enjin Aplikasi menyokong algoritma pencincangan melalui pakej go.crypto. Pakej ini menawarkan dua pilihan selamat:
Cadangan: bcrypt
Untuk kemudahan penggunaan dan keberkesanan yang terbukti, bcrypt ialah pilihan yang disyorkan. Ia adalah algoritma yang mudah digunakan yang menghasilkan cincang berkualiti tinggi.
Pelaksanaan
<code class="go">import "golang.org/x/crypto/bcrypt" func Crypt(password []byte) ([]byte, error) { defer clear(password) return bcrypt.GenerateFromPassword(password, bcrypt.DefaultCost) } ctext, err := Crypt(pass) if err != nil { log.Fatal(err) } fmt.Println(string(ctext))</code>
Output akan menyerupai rentetan seperti:
a$sylGijT5CIJZ9ViJsxZOS.IB2tOtJ40hf82eFbTwq87iVAOb5GL8e
pbkdf2 untuk Pencincangan:
Jika tumpuan adalah semata-mata pada pencincangan berbanding pengesahan kata laluan, pbkdf2 boleh digunakan:
<code class="go">import "golang.org/x/crypto/pbkdf2" func HashPassword(password, salt []byte) []byte { defer clear(password) return pbkdf2.Key(password, salt, 4096, sha256.Size, sha256.New) } pass := []byte("foo") salt := []byte("bar") fmt.Printf("%x\n", HashPassword(pass, salt))</code>
Dengan menggunakan ini pilihan pencincangan kata laluan selamat, pembangun boleh melindungi kelayakan pengguna dengan berkesan pada aplikasi Golang yang dijalankan pada Enjin Apl.
Atas ialah kandungan terperinci Bagaimana untuk Melindungi Kata Laluan dalam Aplikasi Golang pada Enjin Apl?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!