需求:
先使用自定义的盐key对data进行sha1加密,然后对加密后的结果进行base64转码,再将转码后的结果转大写,最后再将转大写后的结果进行url编码:
代码示例:
package main
import (
"crypto/hmac"
"crypto/sha1"
"encoding/base64"
"net/url"
"strings"
)
// Sha1Encrypt sha1加密,base64转码,转大写,url编码
func Sha1Encrypt(key, data string) (sign string) {
mac := hmac.New(sha1.New, []byte(key)) // 使用自定义的盐key创建一个hmac
mac.Write([]byte(data)) // 将要加密的data写入
bs := base64.StdEncoding.EncodeToString(mac.Sum(nil)) // 将计算的结果进行base64转码
sign = url.QueryEscape(strings.ToUpper(bs)) // 将转码后的结果转化成大写并进行url编码
return
}