C# 使用HMAC-SHA1加密

yj01263431 2016-08-26 02:46:29
现在要调用一个携程的接口,需要获得签名,但是没有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=
...全文
2030 8 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
yj01263431 2016-08-26
  • 打赏
  • 举报
回复
自己写出来了
引用 7 楼 starfd 的回复:
HMACSHA1 hmac = new HMACSHA1()
{
    Key = null
};
byte[] data = null;
var result = hmac.ComputeHash(data);
Console.WriteLine(Convert.ToBase64String(result));
已经写出来,还是给你分吧 /// <summary> /// HMAC-SHA1加密算法 /// </summary> /// <param name="secret">密钥</param> /// <param name="strOrgData">源文</param> /// <returns></returns> public static string HmacSha1Sign(string secret, string strOrgData) { var hmacsha1 = new HMACSHA1(Encoding.UTF8.GetBytes(secret)); var dataBuffer = Encoding.UTF8.GetBytes(strOrgData); var hashBytes = hmacsha1.ComputeHash(dataBuffer); return Convert.ToBase64String(hashBytes); }
  • 打赏
  • 举报
回复
HMACSHA1 hmac = new HMACSHA1()
{
    Key = null
};
byte[] data = null;
var result = hmac.ComputeHash(data);
Console.WriteLine(Convert.ToBase64String(result));
  • 打赏
  • 举报
回复
用法跟md5一样的写法啊,只是多了一个构造函数存在差异,有密码而已
yj01263431 2016-08-26
  • 打赏
  • 举报
回复
引用 2 楼 starfd 的回复:
System.Security.Cryptography.HMACSHA1
我想知道具体的算法
yj01263431 2016-08-26
  • 打赏
  • 举报
回复
引用 1 楼 yj01263431 的回复:
各位大牛帮帮忙,比较急
我想知道具体的算法
yj01263431 2016-08-26
  • 打赏
  • 举报
回复
http://blog.csdn.net/jk007/article/details/8491256 看到这个里面有,但是写的不全 mk是什么
  • 打赏
  • 举报
回复
System.Security.Cryptography.HMACSHA1
yj01263431 2016-08-26
  • 打赏
  • 举报
回复
各位大牛帮帮忙,比较急

111,093

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • AIGC Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧