123456789101112131415161718192021222324252627282930313233343536 |
- package world
- import "math/rand"
- import "crypto/sha1"
- import "fmt"
- const MAKE_SALT_AID string = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789."
- func MakeSalt() string {
- c1 := MAKE_SALT_AID[rand.Intn(len(MAKE_SALT_AID))]
- c2 := MAKE_SALT_AID[rand.Intn(len(MAKE_SALT_AID))]
- res := string( []byte{ c1, c2 })
- return res
- }
- func WoeCryptPassword(password string, salt string) string {
- if len(salt) < 1 {
- salt = MakeSalt()
- }
- to_hash := salt + password
- return salt + fmt.Sprintf("%x", sha1.Sum([]byte(to_hash)))
- }
- func WoeCryptChallenge(hash, trypass string) bool {
- salt := hash[0:2]
- try := WoeCryptPassword(trypass, salt)
- return try == hash
- }
|