在Golang/App Engine 中安全地散列密碼,無需系統調用或scrypt
雖然bcrypt 和scrypt 通常用於密碼散列,但它們可能不是由於系統調用可訪問性,適合App Engine。作為替代方案,請考慮利用 go.crypto 程式庫進行安全密碼雜湊。
go.crypto 套件提供對 pbkdf2 和 bcrypt 的支援。兩種實作均完全以 Go 編寫,確保與 App Engine 相容。
1。使用bcrypt
使用以下步驟實作bcrypt:
go get golang.org/x/crypto/bcrypt
用法範例:
用法範例import "golang.org/x/crypto/bcrypt"
func clear(b []byte) {
for i := 0; i 這將產生類似於以下內容的輸出:
$2a$10$sylGijT5CIJZ9ViJsxZOS.IB2tOtJ40hf82eFbTwq87iVAOb5GL8e
對於使用pbkdf2 的簡單雜湊:
import "golang.org/x/crypto/pbkdf2"
func HashPassword(密碼, salt []byte) []byte {
延後清除(密碼)
回pbkdf2.Key(密碼,鹽,4096,sha256.Size,sha256.New)
}
通過 := []byte("foo")
鹽 := []byte("bar")
fmt.Printf("%x\n", HashPassword(pass, salt))
免責聲明: 提供的所有資源部分來自互聯網,如果有侵犯您的版權或其他權益,請說明詳細緣由並提供版權或權益證明然後發到郵箱:[email protected] 我們會在第一時間內為您處理。
Copyright© 2022 湘ICP备2022001581号-3