12345678910111213141516171819202122232425262728293031 |
- package crypt
- import (
- "crypto/rand"
- "encoding/base64"
- )
- // GenerateRandomBytes returns securely generated random bytes.
- // It will return an error if the system's secure random
- // number generator fails to function correctly, in which
- // case the caller should not continue.
- func GenerateRandomBytes(n int) ([]byte, error) {
- b := make([]byte, n)
- _, err := rand.Read(b)
- // Note that err == nil only if we read len(b) bytes.
- if err != nil {
- return nil, err
- }
- return b, nil
- }
- // GenerateRandomString returns a URL-safe, base64 encoded
- // securely generated random string.
- // It will return an error if the system's secure random
- // number generator fails to function correctly, in which
- // case the caller should not continue.
- func GenerateRandomString(s int) (string, error) {
- b, err := GenerateRandomBytes(s)
- return base64.URLEncoding.EncodeToString(b), err
- }
|