我正在創建SHA簽名以將視頻上傳到JWPlayer平臺。我能夠創建帶特殊字符的SHA簽名,但是當我使用簽名上傳視頻時,JWPlayer平臺網站的響應是「簽名期間的Unicode錯誤」,但僅限於使用特殊字符。如果我不包含特殊字符,它工作正常。這裏是鏈接如何創建簽名https://developer.jwplayer.com/jw-platform/reference/v1/authentication.html 我有以下代碼來創建簽名,其中標題可以包含特殊字符:帶特殊字符的SHA簽名
var titleParam = $"title={title}";
var key = $"{apiFormat}&{apiKey}&{apiNonce}&{apiTimestamp}&{titleParam}{secretKey}";
StringBuilder sb;
using (var sha1 = new SHA1Managed())
{
var hash = sha1.ComputeHash(Encoding.UTF8.GetBytes(key));
sb = new StringBuilder(hash.Length * 2);
foreach (byte b in hash)
{
sb.Append(b.ToString("x2"));
}
}
關鍵是還可以根據用戶輸入構造,因此它需要支持特殊字符。我也試過網址編碼的關鍵,但沒有運氣。
感謝您的快速回復我重新表達了我的問題,對此抱歉。 – doorman
@doorman然後你的問題就在你寫的10行代碼之外...... – xanatos
@doorman你必須告訴我們你是如何調用API的。您可能正在跳過第1步或第2步*所有文本參數都轉換爲UTF-8編碼*和*所有文本參數都是URL編碼的(請參閱OAuth Core 1.0第5.1節)*。我看到有一個非ASCII文本預期輸出的完整示例:'démo'。根據你想要調用API的方式,你可能會不同,你如何編碼url – xanatos