在 App Engine 上使用 Golang 保护密码
当涉及到 Web 应用程序的密码哈希时,安全性至关重要。虽然像 bcrypt 这样的流行库由于依赖某些系统调用而不适合 App Engine,但有一些替代方法可以提供强大的保护级别。
安全哈希选项
App Engine 通过 go.crypto 包支持哈希算法。该软件包提供两个安全选项:
建议:bcrypt
为了易于使用和经过验证的有效性,建议选择 bcrypt。这是一种简单易用的算法,可以生成高质量的哈希值。
实现
<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>
输出将类似于字符串:
a$sylGijT5CIJZ9ViJsxZOS.IB2tOtJ40hf82eFbTwq87iVAOb5GL8e
pbkdf2 为哈希:
如果重点仅在于哈希而不是密码验证,则可以使用 pbkdf2:
<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>
通过使用这些安全密码哈希选项,开发人员可以有效保护用户在 App Engine 上运行的 Golang 应用程序的凭据。
以上是如何保护 App Engine 上 Golang 应用程序的密码安全?的详细内容。更多信息请关注PHP中文网其他相关文章!