Melindungi Kata Laluan Pengguna dalam Go on App Engine
Apabila mengendalikan kata laluan pengguna dalam aplikasi Go yang digunakan pada Google App Engine, keselamatan adalah yang terpenting. Pustaka bcrypt, walaupun berkesan dalam pencincangan kata laluan, menimbulkan batasan kerana penggunaan syscall. Atas sebab ini, pembangun boleh mencari kaedah alternatif untuk pencincangan kata laluan selamat.
Satu pilihan yang boleh dipercayai ialah memanfaatkan pakej golang.org/x/crypto, yang menyediakan pelaksanaan asli PBKDF2 dan bcrypt. Pelaksanaan ini menghapuskan pergantungan pada syscall, menjadikannya sesuai untuk Enjin Apl.
Menggunakan bcrypt
Untuk menggunakan bcrypt, ikut langkah berikut:
1. Install the package: go get golang.org/x/crypto/bcrypt
2. Example usage: package main import ( "fmt" "golang.org/x/crypto/bcrypt" ) func main() { pass := []byte("your password") // Generate a hashed password ctext, err := bcrypt.GenerateFromPassword(pass, bcrypt.DefaultCost) if err != nil { // Handle error } fmt.Println(string(ctext)) // Example output: a$sylGijT5CIJZ9ViJsxZOS.IB2tOtJ40hf82eFbTwq87iVAOb5GL8e }
Menggunakan PBKDF2
Untuk keperluan pencincangan yang lebih mudah, PBKDF2 boleh digunakan:
1. Install the package: go get golang.org/x/crypto/pbkdf2
2. Example usage: package main import ( "fmt" "golang.org/x/crypto/pbkdf2" ) func main() { pass := []byte("your password") salt := []byte("your salt") // Generate a hash hash := pbkdf2.Key(pass, salt, 4096, sha256.Size, sha256.New) fmt.Printf("%x\n", hash) // Example output: 0x079b8238d3815d31d87d75ff893371ac3cc875f97eca499854655da9554d2555 }
Atas ialah kandungan terperinci Bagaimana untuk Melindungi Kata Laluan Pengguna dalam Go on App Engine?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!