Sin*_*tic 2 c# cryptography openid-connect
因此,我正在阅读 Open ID Connect 中描述的 JWT 令牌格式,其中一个字段 (at_hash) 表示它是由 oauth 访问令牌生成的最左边的 128 位哈希值。所以我所做的就是获取令牌,对其进行哈希处理,然后尝试提取“最左边”的 128 位,但我觉得我做的这一切都是错误的;感觉很笨拙。
所以我想我的问题是:
有没有更好、更准确的方法来做到这一点?
private byte[] GetFirst128(byte[] hash)
{
var bitArray = new BitArray(hash);
var left128 = new List<bool>();
for (var i = 0; i < 128; i++)
{
left128.Add(bitArray[i]);
}
// convert back to byte[]
var r = Array.ConvertAll(left128.ToArray(),
bit => bit
? (byte) 1
: (byte) 0);
return r;
}
Run Code Online (Sandbox Code Playgroud)