// Copyright 2024 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. package rand const base32alphabet = "ABCDEFGHIJKLMNOPQRSTUVWXYZ234567" // Text returns a cryptographically random string using the standard RFC 4648 base32 alphabet // for use when a secret string, token, password, or other text is needed. // The result contains at least 128 bits of randomness, enough to prevent brute force // guessing attacks and to make the likelihood of collisions vanishingly small. // A future version may return longer texts as needed to maintain those properties. func Text() string { // ⌈log₃₂ 2¹²⁸⌉ = 26 chars src := make([]byte, 26) Read(src) for i := range src { src[i] = base32alphabet[src[i]%32] } return string(src) }