多应用+插件架构,代码干净,二开方便,首家独创一键云编译技术,文档视频完善,免费商用码云13.8K 广告
> ### SHA1 ~~~ package main import ( "crypto/sha1" "encoding/base64" "fmt" "strconv" ) //客户端和服务端以约定的规则生产sign, 服务端收到客户端数据时, //用与约定的规程计算出sign, 再与传过来的sign对比, 看数据是否被篡改 func main() { name := "winnie" age := 18 phone := 123456 sign := Sha1(name + strconv.Itoa(age) + strconv.Itoa(phone)) fmt.Println(base64.StdEncoding.EncodeToString(sign)) } func Sha1(s string)[]byte{ //产生一个散列值得方式是 sha1.New(),sha1.Write(bytes),然后 sha1.Sum([]byte{})。这里我们从一个新的散列开始。 h := sha1.New() //写入要处理的字节。如果是一个字符串,需要使用[]byte(s) 来强制转换成字节数组。 h.Write([]byte(s)) //这个用来得到最终的散列值的字符切片。Sum 的参数可以用来都现有的字符切片追加额外的字节切片:一般不需要要。 bs := h.Sum(nil) //SHA1 值经常以 16 进制输出,例如在 git commit 中。使用%x 来将散列结果格式化为 16 进制字符串。 return bs } ~~~