小编Min*_*ieu的帖子

无法从 Base64 解码 JWT 有效负载

我将从请求标头中解码 JWT 令牌,它看起来像这样:

eyJzdWIiOiIxIiwiZXZlbnRfaWQiOiI3ZTA3Y2JmNC0wYjYyLTQ1MzMtYmE5ZC1mZGFjNDkyNTNjZTUiLCJpYXQiOiIxNTkwODk4Mzg1IiwiZXhwIjoiMTU5MDkwMTk4NSIImlzcyI6ImxvY2Fsa G9zdDo0NDM4NyIsInRpbWV6b25lX29mZnNldCI6LTcsInVzciI6Im1pbmcuaGlldS4xMzEyIiwiYWxpYXMiOiJNaW5nIEhpZXUiLCJwaG9uZSI6IjA4NDQ1OTAyNTIiLCJlbWFpbCI6ImhpZXVhbWLAZ21ha WwuY29tIn0

public static string Base64Decode(string base64EncodedData)
{
    var base64EncodedBytes = Convert.FromBase64String(base64EncodedData);
    return Encoding.UTF8.GetString(base64EncodedBytes);
}
Run Code Online (Sandbox Code Playgroud)

当将上面的标记传递给解码方法时,它会抛出一个异常:

Base-64 字符数组或字符串的长度无效

dotnetfiddle 参考: https: //dotnetfiddle.net/Z2TUz9

但是当在javascript中使用它(使用atob函数)时,它可以正常工作。

谁能告诉我为什么,然后告诉我如何用 C# 解码它?

c# base64 jwt base64url

4
推荐指数
1
解决办法
9964
查看次数

标签 统计

base64 ×1

base64url ×1

c# ×1

jwt ×1