钉钉自定义机器人加签认证(HmacSHA256)C#实现
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了钉钉自定义机器人加签认证(HmacSHA256)C#实现,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1799字,纯文字阅读大概需要3分钟。
内容图文
![钉钉自定义机器人加签认证(HmacSHA256)C#实现](/upload/InfoBanner/zyjiaocheng/640/e2da20627a5843d5b48bfc19a7fa3309.jpg)
0.UTF-8字符集
1.把timestamp+"\n"+密钥当做签名字符串,
2.使用HmacSHA256算法计算签名
3.然后进行Base64 encode
4.最后再把签名参数再进行urlEncode,得到最终的签名。
?
参数 |
说明 |
timestamp |
当前时间戳,单位是毫秒,与请求调用时间误差不能超过1小时 |
secret |
密钥,机器人安全设置页面,加签一栏下面显示的SEC开头的字符串 |
签名计算代码示例(Java)
?123456 | Long timestamp = System.currentTimeMillis(); String stringToSign = timestamp + "\n" + secret; Mac mac = Mac.getInstance( "HmacSHA256" ); mac.init( new SecretKeySpec(secret.getBytes( "UTF-8" ), "HmacSHA256" )); byte [] signData = mac.doFinal(stringToSign.getBytes( "UTF-8" )); return URLEncoder.encode( new String(Base64.encodeBase64(signData)), "UTF-8" ); |
?
C#版示例
12345678910111213141516171819202122232425262728 | ???????? private static byte [] getHmac( string message, string secret) ???????? { ???????????? byte [] keyByte = Encoding.UTF8.GetBytes(secret); ???????????? byte [] messageBytes = Encoding.UTF8.GetBytes(message); ???????????? using ( var hmacsha256 = new HMACSHA256(keyByte)) ???????????? { ???????????????? byte [] hashmessage = hmacsha256.ComputeHash(messageBytes); ???????????????? return hashmessage; ???????????? } ???????? } ???????? public static Int64 ToUTC( this DateTime time) ???????? { ???????????? var zts = TimeZoneInfo.Local.BaseUtcOffset; ???????????? var yc = new DateTime(1970, 1, 1).Add(zts); ???????????? return ( long )(DateTime.Now - yc).TotalMilliseconds; ???????? } main.cs ???????????? var secret = "123" ; ???????????? var timeStamp = DateTime.Now.ToUTC(); ???????????? var stringToSign = $ "{timeStamp}\n{secret}" ; ???????????? var b64 = getHmac(stringToSign, secret); ???????????? var b64Str = Convert.ToBase64String(b64); ???????????? var sign = HttpUtility.UrlEncode(b64Str); ???????????? url = $ "{url}×tamp={timeStamp}&sign={sign}" ; |
ok!
内容总结
以上是互联网集市为您收集整理的钉钉自定义机器人加签认证(HmacSHA256)C#实现全部内容,希望文章能够帮你解决钉钉自定义机器人加签认证(HmacSHA256)C#实现所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。