实现
请求接口:http://api.test.com/test?name=hello&home=world&work=java
客户端
- 生成当前时间戳timestamp=now和唯一随机字符串nonce=random
- 按照请求参数名的字母升序排列非空请求参数(包含AccessKey)
stringA=”AccessKey=access&home=world&name=hello&work=java×tamp=now&nonce=random”; - 拼接密钥SecretKey
stringSignTemp=”AccessKey=access&home=world&name=hello&work=java×tamp=now&nonce=random&SecretKey=secret”; - MD5并转换为大写
sign=MD5(stringSignTemp).toUpperCase(); - 最终请求
http://api.test.com/test?name=hello&home=world&work=java×tamp=now&nonce=nonce&sign=sign;服务端
timestamp 3分钟有效
nonce 15分钟有效期,已经存在nonce,返回错误码