"일꾼이 일을 잘하려면 먼저 도구를 갈고 닦아야 한다." - 공자, 『논어』.
첫 장 > 프로그램 작성 > App Engine의 Go에서 사용자 비밀번호를 보호하는 방법은 무엇입니까?

App Engine의 Go에서 사용자 비밀번호를 보호하는 방법은 무엇입니까?

2024-11-08에 게시됨
검색:751

How to Secure User Passwords in Go on App Engine?

App Engine의 Go에서 사용자 비밀번호 보호

Google App Engine에 배포된 Go 애플리케이션에서 사용자 비밀번호를 처리할 때는 보안이 가장 중요합니다. bcrypt 라이브러리는 비밀번호 해싱에 효과적이지만 syscall 사용으로 인해 제한이 있습니다. 이러한 이유로 개발자는 안전한 비밀번호 해싱을 위한 대체 방법을 찾을 수 있습니다.

신뢰할 수 있는 옵션 중 하나는 PBKDF2 및 bcrypt의 기본 구현을 제공하는 golang.org/x/crypto 패키지를 활용하는 것입니다. 이러한 구현은 syscall에 대한 종속성을 제거하여 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