H5 发布 Schema 时提示签名不正确
700 浏览2023年01月09日作者:leonlzm

//C# 生成签名 在通过H5 发布视频到抖音时提示签名不正确,还请各位大神看看我哪写的有问题,感谢!


//时间戳

TimeSpan ts = DateTime.Now.ToUniversalTime() - new DateTime(1970, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc);

string timestamp = Convert.ToInt64(ts.TotalSeconds).ToString();


//随机字符串

string noncestr ="WmWJPZ1029W";

//通过client_access_token 获取 ticket

string tickect =#LmaYQZ+fCTbSh09Yz2Jiu8VCgXHebF5uNs7nAd73z4Pwq+eBACEsVsaROoVEntHkVx55rId8iYdQ+wtEPvnWPA==


//生成签名的字符串

string str = "nonce_str=WmWJPZ1029W&tickect=#LmaYQZ+fCTbSh09Yz2Jiu8VCgXHebF5uNs7nAd73z4Pwq+eBACEsVsaROoVEntHkVx55rId8iYdQ+wtEPvnWPA==&timestamp=1650941858";


//MD5生成签名

byte[] s = md5.ComputeHash(Encoding.UTF8.GetBytes(str));

//MD5CryptoServiceProvider md5Hasher = new MD5CryptoServiceProvider();

//byte[] s = md5Hasher.ComputeHash(Encoding.Default.GetBytes(str));

for (int i=0;i<s.Length;i++)

{

//rule += s[i].ToString("x2");

rule += s[i].ToString("X").PadLeft(2, '0');

}

string signature= rule;


我在获取签名的时候得到的tickect都是以#开头的,文档是以@开头,这个有关系吗?

请各位大神指点迷津啊!


4. 根据 ticket 和其他字段进行签名计算

参与签名的字段包括 noncestr(随机字符串), 有效的 ticket, timestamp(时间戳,秒级别,类型为 String)

例如:

参数

示例

nonce_str

Wm3WZYTPz0wzccnW

ticket

@ml6sqYBGgTKmQNajnKNkaj8yksCAY++adIhlGIqfTiKyvBqOIkzdJ6WRgP+nO+wtVItqKbX4iZ+mFIYkyPJjpQ==

timestamp

1650941858

对所有待签名参数按照字段名的 ASCII 码从小到大排序(字典序)后,使用 URL 键值对的格式(即 key1=value1&key2=value2…)拼接成字符串 string1:

nonce_str=Wm3WZYTPz0wzccnW&ticket=@ml6sqYBGgTKmQNajnKNkaj8yksCAY++adIhlGIqfTiKyvBqOIkzdJ6WRgP+nO+wtVItqKbX4iZ+mFIYkyPJjpQ==&timestamp=1650941858

对 string1 进行 MD5 签名,得到 signature:e9e2aa8136260a22b0b09fdee43ccb8a。

最后一次编辑于 2023 年 01 月 09 日
11 条评论

相关文章

专题推荐

热门文章

热门问答