Защита паролей пользователей в Go на App Engine
При обработке паролей пользователей в приложениях Go, развернутых на Google App Engine, безопасность имеет первостепенное значение. Библиотека bcrypt, хотя и эффективна для хеширования паролей, но имеет ограничения из-за использования системных вызовов. По этой причине разработчики могут искать альтернативные методы безопасного хеширования паролей.
Один надежный вариант — использовать пакет golang.org/x/crypto, который предоставляет собственные реализации PBKDF2 и bcrypt. Эти реализации устраняют зависимость от системного вызова, что делает их пригодными для App Engine.
Использование bcrypt
Чтобы использовать bcrypt, выполните следующие действия:
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: $2a$10$sylGijT5CIJZ9ViJsxZOS.IB2tOtJ40hf82eFbTwq87iVAOb5GL8e }
Использование PBKDF2
Для более простых задач хеширования можно использовать PBKDF2:
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 }
Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.
Copyright© 2022 湘ICP备2022001581号-3