项目是VUE网站调用WEBAPI的接口,为了安全,增加了验证,用的就是常规操作,appid timestamp appsecret sign ,
顺便说下,不知道为什么.net5中application/json request payload 方式,貌似获取不到Post提交的数据,Form始终是小红叉,Form = '((Microsoft.AspNetCore.Http.DefaultHttpRequest)_httpContextAccessor.HttpContext.Request).Form' threw an exception of type 'System.InvalidOperationException'
只有加一个params 了。
Vue中MD5【js-md5】加密后
sign:9a7e4ecc0ccd22b045bf029cab697e7d
C#中
///<summary>
///MD5加密
///</summary>
///<param name="strText">待加密字符串</param>
///<returns>加密后的字符串</returns>
private string MD5(string strText)
{
MD5 md5 = new MD5CryptoServiceProvider();
byte[] fromData = System.Text.Encoding.UTF8.GetBytes(strText);
byte[] targetData = md5.ComputeHash(fromData);
string byte2String = null;
for (int i = 0; i < targetData.Length; i++)
{
byte2String += targetData[i].ToString("x");
}
return byte2String;
}
开始看着没什么差别,但是始终给抛异常。
仔细看加密后大致一致,但是差0,VUE有0的地方都给干没了。
百度了几篇文章,才知道字节转换成字符串的时候要保证是2位宽度不然会和VUE里面的不匹配
byte2String += targetData[i].ToString("x2");
只需要修改x为x2就好了。