Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana untuk Melindungi Kata Laluan dalam Aplikasi Golang pada Enjin Apl?

Bagaimana untuk Melindungi Kata Laluan dalam Aplikasi Golang pada Enjin Apl?

Barbara Streisand
Barbara Streisandasal
2024-10-30 23:25:30608semak imbas

How to Secure Passwords in Golang Applications on App Engine?

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:

  • pBkdF2 (Fungsi Terbitan Kunci Berasaskan Kata Laluan 2): Fungsi sehala yang berulang yang terkenal dengan ketahanannya terhadap serangan kekerasan.
  • bcrypt: Algoritma pencincangan berasaskan blowfish yang direka khusus untuk penyimpanan kata laluan.

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!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn