rework
This commit is contained in:
@@ -10,13 +10,13 @@ package main
|
|||||||
import (
|
import (
|
||||||
"fmt"
|
"fmt"
|
||||||
|
|
||||||
"github.com/annybs/go/random"
|
"code.aneur.in/go/random"
|
||||||
)
|
)
|
||||||
|
|
||||||
func main() {
|
func main() {
|
||||||
n := make([]bool, 10)
|
n := make([]bool, 10)
|
||||||
for i := range n {
|
for i := range n {
|
||||||
fmt.Println(random.Str(4 + i))
|
fmt.Println(random.Alpha(4 + i))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|||||||
@@ -1,9 +1,56 @@
|
|||||||
package random
|
package random
|
||||||
|
|
||||||
import "math/rand"
|
import (
|
||||||
|
"math/rand"
|
||||||
|
"strings"
|
||||||
|
)
|
||||||
|
|
||||||
// Str generates a random string of the specified length using an alphanumeric character set.
|
// Standard character set.
|
||||||
var Str = String([]rune("abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"))
|
const (
|
||||||
|
CharsetAlpha string = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"
|
||||||
|
CharsetAlphanumeric string = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"
|
||||||
|
CharsetAlphaLower string = "abcdefghijklmnopqrstuvwxyz"
|
||||||
|
CharsetAlphaUpper string = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
|
||||||
|
CharsetNumeric string = "0123456789"
|
||||||
|
CharsetSymbols string = "!@#$%^&*()-=_+[]{};:,.<>/?"
|
||||||
|
)
|
||||||
|
|
||||||
|
// Alpha generates a random string of the specified length using a mixed-case alphabetical character set.
|
||||||
|
var Alpha = String([]rune(CharsetAlpha))
|
||||||
|
|
||||||
|
// Alphanumeric generates a random string of the specified length using an alphanumeric character set.
|
||||||
|
var Alphanumeric = String([]rune(CharsetAlphanumeric))
|
||||||
|
|
||||||
|
// AlphaLower generates a random string of the specified length using a lowercase alphabetical character set.
|
||||||
|
var AlphaLower = String([]rune(CharsetAlphaLower))
|
||||||
|
|
||||||
|
// AlphaUpper generates a random string of the specified length using an uppercase alphabetical character set.
|
||||||
|
var AlphaUpper = String([]rune(CharsetAlphaUpper))
|
||||||
|
|
||||||
|
// Numeric generates a random string of the specified length containing numbers only.
|
||||||
|
var Numeric = String([]rune(CharsetNumeric))
|
||||||
|
|
||||||
|
// Password generates a random string of the specified length, including the specified counts of numbers and symbols.
|
||||||
|
func Password(length, numbers, symbols int) string {
|
||||||
|
parts := []string{
|
||||||
|
Alpha(length - numbers - symbols),
|
||||||
|
Numeric(numbers),
|
||||||
|
Symbols(symbols),
|
||||||
|
}
|
||||||
|
|
||||||
|
str := strings.Join(parts, "")
|
||||||
|
m := map[int]rune{}
|
||||||
|
for i, c := range str {
|
||||||
|
m[i] = c
|
||||||
|
}
|
||||||
|
|
||||||
|
jumbled := []rune{}
|
||||||
|
for _, c := range m {
|
||||||
|
jumbled = append(jumbled, c)
|
||||||
|
}
|
||||||
|
|
||||||
|
return string(jumbled)
|
||||||
|
}
|
||||||
|
|
||||||
// String returns a function that can be used to generate a random string of the specified length using the given character set.
|
// String returns a function that can be used to generate a random string of the specified length using the given character set.
|
||||||
func String(chars []rune) func(length int) string {
|
func String(chars []rune) func(length int) string {
|
||||||
@@ -16,3 +63,6 @@ func String(chars []rune) func(length int) string {
|
|||||||
return string(s)
|
return string(s)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Symbols generates a random string of the specified length using a limited selection of symbols.
|
||||||
|
var Symbols = String([]rune(CharsetSymbols))
|
||||||
|
|||||||
Reference in New Issue
Block a user