把timestamp+"\n"+
密钥当做签名字符串,使用HmacSHA256算法计算签名,然后进行Base64 encode,最后再把签名参数再进行urlEncode,得到最终的签名(需要使用UTF-8字符集)。
看了官方文档里面有Java语言、python语言,居然没有Golang语言的,作为一个Java兼Golang工程师,对Golang感到不平衡,自己写一个吧,对标Java语言,代码如下:
签名计算示例代码(Java)
import javax.crypto.Mac;
import javax.crypto.spec.SecretKeySpec;
import org.apache.commons.codec.binary.Base64;
import java.net.URLEncoder;
public class Test{
public static void main(String[] args) throws Exception{
Long timestamp = System.currentTimeMillis();
String secret = "this is secret";
String stringToSign = timestamp + "\n" + secret;
Mac mac = Mac.getInstance("HmacSHA256");
mac.init(new SecretKeySpec(secret.getBytes("UTF-8"), "HmacSHA256"));
byte[] signDa