more
This commit is contained in:
parent
21646ee66c
commit
caa80fd73b
|
@ -13,6 +13,7 @@ import (
|
||||||
func TestUsers(t *testing.T) {
|
func TestUsers(t *testing.T) {
|
||||||
var email string
|
var email string
|
||||||
c.testing = true
|
c.testing = true
|
||||||
|
generatePassword(16)
|
||||||
flag.StringVar(&email, "email", "", "Email address to use for registration test")
|
flag.StringVar(&email, "email", "", "Email address to use for registration test")
|
||||||
flag.Parse()
|
flag.Parse()
|
||||||
|
|
||||||
|
|
25
password.go
25
password.go
|
@ -3,28 +3,27 @@ package scsusers
|
||||||
import (
|
import (
|
||||||
"crypto/rand"
|
"crypto/rand"
|
||||||
"encoding/base32"
|
"encoding/base32"
|
||||||
|
"log"
|
||||||
mr "math/rand"
|
mr "math/rand"
|
||||||
"time"
|
"time"
|
||||||
"unicode"
|
"unicode"
|
||||||
)
|
)
|
||||||
|
|
||||||
func flipCoin() bool {
|
func flipCoin() bool {
|
||||||
r:=mr.New(mr.NewSource(time.Now().Unix()))
|
r := mr.New(mr.NewSource(time.Now().UnixNano()))
|
||||||
return r.Intn(2)==1
|
return r.Intn(3) == 1
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
func scrambleCase(in []byte) []byte {
|
func scrambleCase(in []byte) []byte {
|
||||||
var out []byte
|
var out []byte
|
||||||
for _, x := range string(in) {
|
for _, x := range string(in) {
|
||||||
if unicode.IsUpper(x) {
|
if unicode.IsUpper(x) && flipCoin() {
|
||||||
if flipCoin() {
|
out = append(out, byte(unicode.ToLower(x)))
|
||||||
out = append(out, byte(x))
|
} else {
|
||||||
} else {
|
out = append(out, byte(x))
|
||||||
out = append(out, byte(unicode.ToLower(x)))
|
|
||||||
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
log.Printf("scrambleCase in %s out %s", in, out)
|
||||||
return out
|
return out
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -48,7 +47,7 @@ func generatePassword(n int) []byte {
|
||||||
}
|
}
|
||||||
|
|
||||||
func hasDigit(in []byte) bool {
|
func hasDigit(in []byte) bool {
|
||||||
for _,x := range string(in) {
|
for _, x := range string(in) {
|
||||||
if unicode.IsDigit(x) {
|
if unicode.IsDigit(x) {
|
||||||
return true
|
return true
|
||||||
}
|
}
|
||||||
|
@ -57,7 +56,7 @@ func hasDigit(in []byte) bool {
|
||||||
}
|
}
|
||||||
|
|
||||||
func hasUppercase(in []byte) bool {
|
func hasUppercase(in []byte) bool {
|
||||||
for _,x:= range string(in) {
|
for _, x := range string(in) {
|
||||||
if unicode.IsUpper(x) {
|
if unicode.IsUpper(x) {
|
||||||
return true
|
return true
|
||||||
}
|
}
|
||||||
|
@ -66,7 +65,7 @@ func hasUppercase(in []byte) bool {
|
||||||
}
|
}
|
||||||
|
|
||||||
func hasLowercase(in []byte) bool {
|
func hasLowercase(in []byte) bool {
|
||||||
for _,x := range string(in) {
|
for _, x := range string(in) {
|
||||||
if unicode.IsLower(x) {
|
if unicode.IsLower(x) {
|
||||||
return true
|
return true
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue