"crypto/rand"를 사용한 안전한 무작위 정수 생성
Go에서 안전한 무작위 정수 생성은 다양한 암호화 애플리케이션에서 중요한 작업입니다. "crypto/rand" 패키지는 이를 안전하게 수행하기 위한 메커니즘을 제공합니다.
"crypto/rand" 패키지를 사용하여 0에서 27 사이의 임의의 정수를 생성하려면 다음 기능을 활용할 수 있습니다.
func Int(rand io.Reader, max *big.Int) (n *big.Int, err error)
이 함수에는 두 개의 인수가 필요합니다:
0에서 27 사이의 임의의 정수를 생성하려면 다음을 사용하세요. 코드:
nBig, err := rand.Int(rand.Reader, big.NewInt(27)) if err != nil { panic(err) } n := nBig.Int64()
암호화 토큰 생성
보안 토큰을 생성하기 위한 더 나은 접근 방식은 "encoding/base32" 패키지를 사용하여 임의 바이트 슬라이스를 생성하고 base32 인코딩을 사용하여 문자열로 변환합니다. 예는 다음과 같습니다.
package main import ( "crypto/rand" "encoding/base32" "fmt" ) func main() { randomBytes := make([]byte, 32) _, err := rand.Read(randomBytes) if err != nil { panic(err) } token := base32.StdEncoding.EncodeToString(randomBytes)[:27] // Adjust length as needed fmt.Println("Here is a random token: ", token) }
이 접근 방식은 암호화된 보안 난수 생성기를 활용하고 결과를 base32 인코딩을 사용하여 문자열로 변환하므로 토큰 생성에 안전한 것으로 간주되어 출력 토큰이 예측 불가능하고 어렵습니다. 추측해 보세요.
위 내용은 Go에서 안전한 무작위 정수와 토큰을 생성하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!