12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849 |
- package cookie
- // Functions for generating random strings
- import (
- "math/rand"
- )
- // RandomString generates a random string of a given length.
- func RandomString(length int) string {
- b := make([]byte, length)
- for i := 0; i < length; i++ {
- b[i] = byte(rand.Int63() & 0xff)
- }
- return string(b)
- }
- /*RandomHumanFriendlyString generates a random, but human-friendly, string of
- * the given length. It should be possible to read out loud and send in an email
- * without problems. The string alternates between vowels and consontants.
- *
- * Example output for length 10: ykyzexebub
- */
- func RandomHumanFriendlyString(length int) string {
- const (
- vowels = "aeiouy" // email+browsers didn't like "æøå" too much
- consonants = "bcdfghjklmnpqrstvwxz"
- )
- b := make([]byte, length)
- for i := 0; i < length; i++ {
- if i%2 == 0 {
- b[i] = vowels[rand.Intn(len(vowels))]
- } else {
- b[i] = consonants[rand.Intn(len(consonants))]
- }
- }
- return string(b)
- }
- // RandomCookieFriendlyString generates a random, but cookie-friendly, string of
- // the given length.
- func RandomCookieFriendlyString(length int) string {
- const allowed = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"
- b := make([]byte, length)
- for i := 0; i < length; i++ {
- b[i] = allowed[rand.Intn(len(allowed))]
- }
- return string(b)
- }
|