package encrypt import ( "bytes" "crypto/md5" "crypto/sha1" "encoding/hex" "fmt" "github.com/alexandrevicenzi/unchained" "github.com/rs/xid" "time" ) // UserPasswd 员工密码 func UserPasswd(passwd string) (pwd string) { pwd, _ = unchained.MakePassword( passwd, unchained.GetRandomString(unchained.DefaultSaltSize), unchained.PBKDF2SHA256Hasher, ) return } // CheckUserPasswd 验证员工密码 func CheckUserPasswd(passwd, encode string) (bool, error) { return unchained.CheckPassword(passwd, encode) } // ProjectSecret 项目私钥生成方法 func ProjectSecret(projectId int64) string { var buf = bytes.NewBufferString(fmt.Sprintf("secret:%d%d%s", projectId, time.Now().Unix(), xid.New().String())) hash := md5.New() hash.Write(buf.Bytes()) return hex.EncodeToString(hash.Sum(nil)) } // ProjectToken 项目token生成方法 func ProjectToken() string { var buf = bytes.NewBufferString(fmt.Sprintf("token:%d%s", time.Now().Unix(), xid.New().String())) hash := sha1.New() hash.Write(buf.Bytes()) return hex.EncodeToString(hash.Sum(nil)) } // ProjectEncryptStr 项目encrypt_str生成方法 func ProjectEncryptStr(hashId string) string { var buf = bytes.NewBufferString(fmt.Sprintf("encrypt_str:%d%s", time.Now().Unix(), hashId)) hash := sha1.New() hash.Write(buf.Bytes()) return hex.EncodeToString(hash.Sum(nil)) } // ProjectThirdSecret 项目third_secret生成方法 func ProjectThirdSecret(hashId string) string { var buf = bytes.NewBufferString(fmt.Sprintf("third_secret:%d%s", time.Now().Unix(), hashId)) hash := sha1.New() hash.Write(buf.Bytes()) return hex.EncodeToString(hash.Sum(nil)) }