package common import ( "crypto/md5" "crypto/rand" "encoding/base64" "encoding/hex" "io" "strings" ) const ( //BASE64字符表,不要有重复 base64Table = "<>:;',./?~!@#$CDVWX%^&*ABYZabcghijklmnopqrstuvwxyz01EFGHIJKLMnopQRSTU2345678(def)_+|{}[]9/" hashFunctionHeader = "zh.ife.iya" hashFunctionFooter = "09.O25.O20.78" ) /** * 对一个字符串进行MD5加密,不可解密 */ func GetMd5String(s string) string { h := md5.New() h.Write([]byte(s + "zhifeiya")) //使用zhifeiya名字做散列值,设定后不要变 return hex.EncodetoString(h.Sum(nil)) } /** * 获取一个Guid值 */ func GetGuid() string { b := make([]byte,48) if _,err := io.ReadFull(rand.Reader,b); err != nil { return "" } return GetMd5String(base64.URLEncoding.EncodetoString(b)) } var coder = base64.NewEncoding(base64Table) /** * base64加密 */ func Base64Encode(str string) string { var src []byte = []byte(hashFunctionHeader + str + hashFunctionFooter) return string([]byte(coder.EncodetoString(src))) } /** * base64解密 */ func Base64Decode(str string) (string,error) { var src []byte = []byte(str) by,err := coder.DecodeString(string(src)) return strings.Replace(strings.Replace(string(by),hashFunctionHeader,"",-1),hashFunctionFooter,err }
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。