Go言語でランダムな文字列を取得する
martini-congrib/sessionsでセッションIDを取得するあたりのコードを読んでいて見つけたのでメモ。
だいたいこんな感じ。
io.ReadFull(rand.Reader, b)でランダムなバイト配列を取得できる。
package main import ( "crypto/rand" "encoding/base32" "fmt" "io" "strings" ) func main() { b := make([]byte, 32) _, err := io.ReadFull(rand.Reader, b) if err != nil { fmt.Println("error:", err) return } println(strings.TrimRight(base32.StdEncoding.EncodeToString(b), "=")) }