Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/MHSanaei/3x-ui.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'util/random/random.go')
-rw-r--r--util/random/random.go43
1 files changed, 43 insertions, 0 deletions
diff --git a/util/random/random.go b/util/random/random.go
new file mode 100644
index 00000000..b1dd2e09
--- /dev/null
+++ b/util/random/random.go
@@ -0,0 +1,43 @@
+package random
+
+import (
+ "math/rand"
+ "time"
+)
+
+var numSeq [10]rune
+var lowerSeq [26]rune
+var upperSeq [26]rune
+var numLowerSeq [36]rune
+var numUpperSeq [36]rune
+var allSeq [62]rune
+
+func init() {
+ rand.Seed(time.Now().UnixNano())
+
+ for i := 0; i < 10; i++ {
+ numSeq[i] = rune('0' + i)
+ }
+ for i := 0; i < 26; i++ {
+ lowerSeq[i] = rune('a' + i)
+ upperSeq[i] = rune('A' + i)
+ }
+
+ copy(numLowerSeq[:], numSeq[:])
+ copy(numLowerSeq[len(numSeq):], lowerSeq[:])
+
+ copy(numUpperSeq[:], numSeq[:])
+ copy(numUpperSeq[len(numSeq):], upperSeq[:])
+
+ copy(allSeq[:], numSeq[:])
+ copy(allSeq[len(numSeq):], lowerSeq[:])
+ copy(allSeq[len(numSeq)+len(lowerSeq):], upperSeq[:])
+}
+
+func Seq(n int) string {
+ runes := make([]rune, n)
+ for i := 0; i < n; i++ {
+ runes[i] = allSeq[rand.Intn(len(allSeq))]
+ }
+ return string(runes)
+}