现在要调用一个携程的接口,需要获得签名,但是没有HMAC-SHA1加密算法
签名原文示例:
{“type”:”Mobile”,”value”:”13000000001″,”scene”:”login”,”token”:”abd23f56e30940769ccefc664c9eea49″} // 检测手机号
{“type”:”IP”,”value”:”111.180.190.239″,”scene”:”login”,”token”:”abd23f56e30940769ccefc664c9eea49″} // 检测IP
1.6.2. 生成签名值
1) 使用HMAC-SHA1加密算法,将获取的密钥对上一步中生成的原文进行加密 (不要进行16进制转换)。
结果为:[B@3890c1ee byte[]数组对象
2) 将生成的密文进行标准Base64编码。
结果为:82KoXtr7HKxYIC93Sl/2XofqEEo=
签名原文示例:
{“type”:”Mobile”,”value”:”13000000001″,”scene”:”login”,”token”:”abd23f56e30940769ccefc664c9eea49″} // 检测手机号
{“type”:”IP”,”value”:”111.180.190.239″,”scene”:”login”,”token”:”abd23f56e30940769ccefc664c9eea49″} // 检测IP
1.6.2. 生成签名值
1) 使用HMAC-SHA1加密算法,将获取的密钥对上一步中生成的原文进行加密 (不要进行16进制转换)。
结果为:[B@3890c1ee byte[]数组对象
2) 将生成的密文进行标准Base64编码。
结果为:82KoXtr7HKxYIC93Sl/2XofqEEo=
解决方案
30
HMACSHA1 hmac = new HMACSHA1() { Key = null }; byte[] data = null; var result = hmac.ComputeHash(data); Console.WriteLine(Convert.ToBase64String(result));