mirror of https://github.com/hashicorp/packer
* to share them * also removed unused PassworString func & arm.TempPasswordAlphabet package constpull/6657/head
parent
cfbba44fdd
commit
170b2f3383
@ -1,45 +0,0 @@
|
||||
package common
|
||||
|
||||
import (
|
||||
"math/rand"
|
||||
"os"
|
||||
"time"
|
||||
)
|
||||
|
||||
var pwSymbols = []string{
|
||||
"abcdefghijklmnopqrstuvwxyz",
|
||||
"ABCDEFGHIJKLMNOPQRSTUVWXYZ",
|
||||
"0123456789",
|
||||
}
|
||||
|
||||
var rnd = rand.New(rand.NewSource(time.Now().UnixNano() + int64(os.Getpid())))
|
||||
|
||||
func RandomString(chooseFrom string, length int) (randomString string) {
|
||||
cflen := len(chooseFrom)
|
||||
for i := 0; i < length; i++ {
|
||||
randomString += string(chooseFrom[rnd.Intn(cflen)])
|
||||
}
|
||||
return
|
||||
}
|
||||
|
||||
func RandomPassword() (password string) {
|
||||
pwlen := 15
|
||||
batchsize := pwlen / len(pwSymbols)
|
||||
pw := make([]byte, 0, pwlen)
|
||||
// choose character set
|
||||
for c := 0; len(pw) < pwlen; c++ {
|
||||
s := RandomString(pwSymbols[c%len(pwSymbols)], rnd.Intn(batchsize-1)+1)
|
||||
pw = append(pw, []byte(s)...)
|
||||
}
|
||||
// truncate
|
||||
pw = pw[:pwlen]
|
||||
|
||||
// permute
|
||||
for c := 0; c < pwlen-1; c++ {
|
||||
i := rnd.Intn(pwlen-c) + c
|
||||
x := pw[c]
|
||||
pw[c] = pw[i]
|
||||
pw[i] = x
|
||||
}
|
||||
return string(pw)
|
||||
}
|
||||
@ -1,15 +0,0 @@
|
||||
package common
|
||||
|
||||
import (
|
||||
"testing"
|
||||
)
|
||||
|
||||
func TestRandomPassword_generates_15char_passwords(t *testing.T) {
|
||||
for i := 0; i < 100; i++ {
|
||||
pw := RandomPassword()
|
||||
t.Logf("pw: %v", pw)
|
||||
if len(pw) != 15 {
|
||||
t.Fatalf("len(pw)!=15, but %v: %v (%v)", len(pw), pw, i)
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,29 @@
|
||||
package random
|
||||
|
||||
import (
|
||||
"math/rand"
|
||||
"os"
|
||||
"time"
|
||||
)
|
||||
|
||||
var (
|
||||
numbers = "0123456789"
|
||||
lowerCase = "abcdefghijklmnopqrstuvwxyz"
|
||||
upperCase = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
|
||||
|
||||
alphaNum = numbers + lowerCase + upperCase
|
||||
)
|
||||
|
||||
var rnd = rand.New(rand.NewSource(time.Now().UnixNano() + int64(os.Getpid())))
|
||||
|
||||
func AlphaNum(length int) string {
|
||||
return String(alphaNum, length)
|
||||
}
|
||||
|
||||
func String(chooseFrom string, length int) (randomString string) {
|
||||
cflen := len(chooseFrom)
|
||||
for i := 0; i < length; i++ {
|
||||
randomString += string(chooseFrom[rnd.Intn(cflen)])
|
||||
}
|
||||
return
|
||||
}
|
||||
Loading…
Reference in new issue