ASP.NET 实现微信JS-SDK权限签名算法_.NET_编程开发_程序员俱乐部

中国优秀的程序员网站程序员频道CXYCLUB技术地图
热搜:
更多>>
 
您所在的位置: 程序员俱乐部 > 编程开发 > .NET > ASP.NET 实现微信JS-SDK权限签名算法

ASP.NET 实现微信JS-SDK权限签名算法

 2015/3/26 18:10:44  f1sher  程序员俱乐部  我要评论(0)
  • 摘要:签名生成规则如下:参与签名的字段包括noncestr(随机字符串),有效的jsapi_ticket,timestamp(时间戳),url(当前网页的URL,不包含#及其后面部分)。1、对所有待签名参数按照字典序排序,使用URL键值对的格式(即key1=value1&key2=value2…)拼接成字符串string1(这里需要注意的是所有参数名均为小写字符);2、对string1作sha1加密,字段名和字段值都采用原始值,不进行URL转义。对应的
  • 标签:.net ASP.NET SDK 实现 net 算法 JS

签名生成规则如下:

参与签名的字段包括noncestr(随机字符串), 有效的jsapi_ticket, timestamp(时间戳), url(当前网页的URL,不包含#及其后面部分)。

1、对所有待签名参数按照字典序排序,使用URL键值对的格式(即key1=value1&key2=value2…)拼接成字符串string1(这里需要注意的是所有参数名均为小写字符);

2、对string1作sha1加密,字段名和字段值都采用原始值,不进行URL 转义。

对应的:

class="brush:csharp;gutter:true;">string string1 = "jsapi_ticket=" + jsapi_ticket + "&noncestr=" + noncestr+ "&timestamp=" + timestamp + "&url=" + url;

和:

string signature = SHA1_Encrypt(string1);

public static string SHA1_Encrypt(string Source_String)
{
    byte[] StrRes = Encoding.Default.GetBytes(Source_String);
    HashAlgorithm iSHA = new SHA1CryptoServiceProvider();
    StrRes = iSHA.ComputeHash(StrRes);
    StringBuilder EnText = new StringBuilder();
     foreach (byte iByte in StrRes)
    {
        EnText.AppendFormat("{0:x2}", iByte);
    }
    return EnText.ToString();
}

  

 

发表评论
用户名: 匿名