using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Web;
namespace iWareSda_QQJF.WEBAPI.TestPost
{
public class SignExtension
{
public static bool Validate(string timeStamp, string nonce, string staffId, string token, string data, string signature)
{
var hash = System.Security.Cryptography.MD5.Create();
//拼接签名数据
var signStr = timeStamp + nonce + staffId + token + data;
//将字符串中字符按升序排序
var sortStr = string.Concat(signStr.OrderBy(c => c));
var bytes = Encoding.UTF8.GetBytes(sortStr);
//使用MD5加密
var md5Val = hash.ComputeHash(bytes);
//把二进制转化为大写的十六进制
StringBuilder result = new StringBuilder();
foreach (var c in md5Val)
{
result.Append(c.ToString("X2"));
}
return result.ToString().ToUpper() == signature;
}
///
/// 前端接口使用的签名验证
///
///
///
///
///
///
///
///
///
public static bool ValidateApp(string timeStamp, string nonce, string appKey, string appSecret, string accessToken, string data, string signature)
{
var hash = System.Security.Cryptography.MD5.Create();
//拼接签名数据
var signStr = timeStamp + nonce + appKey + appSecret + accessToken + data;
//将字符串中字符按升序排序
var sortStr = string.Concat(signStr.OrderBy(c => c));
var bytes = Encoding.UTF8.GetBytes(sortStr);
//使用MD5加密
var md5Val = hash.ComputeHash(bytes);
//把二进制转化为大写的十六进制
StringBuilder result = new StringBuilder();
foreach (var c in md5Val)
{
result.Append(c.ToString("X2"));
}
return result.ToString().ToUpper() == signature;
}
///
/// 货主接口使用的签名验证
///
///
///
///
///
///
///
///
public static bool ValidateConsignor(string timeStamp, string nonce, string consignorCode, string token, string data, string signature)
{
var hash = System.Security.Cryptography.MD5.Create();
//拼接签名数据
var signStr = timeStamp + nonce + consignorCode + token + data;
//将字符串中字符按升序排序
var sortStr = string.Concat(signStr.OrderBy(c => c));
var bytes = Encoding.UTF8.GetBytes(sortStr);
//使用MD5加密
var md5Val = hash.ComputeHash(bytes);
//把二进制转化为大写的十六进制
StringBuilder result = new StringBuilder();
foreach (var c in md5Val)
{
result.Append(c.ToString("X2"));
}
return result.ToString().ToUpper() == signature;
}
}
}