中国气象局面向网络媒体、手机厂商、第三方气象服务机构等用户,通过 web 方式提供数据气象服务的官方载体。
在一周前已经申请到appid,但是苦于没有C#版的key 的算法,一直验证不通过,经过几天查询资料,现在提供一份C#版的HMAC-SHA1的加密算法
比较简单,分项给大家,大家可以参考一下。
string GetKey(string appid, string privateKey, string areaId, string date, string type) { //使用SHA1的HMAC HMAC hmac = HMACSHA1.Create(); var publicKey = "http://webapi.weather.com.cn/data/?areaid={0}&type={1}&date={2}&appid={3}"; var data = System.Text.Encoding.UTF8.GetBytes(string.Format(publicKey, areaId, type, date, appid)); //密钥 var key = System.Text.Encoding.UTF8.GetBytes(privateKey); hmac.Key = key; //对数据进行签名 var signedData = hmac.ComputeHash(data); return Convert.ToBase64String(signedData); }