gpt4 book ai didi

c# - 我如何获得 "left-most 128 bits of a byte array"?

转载 作者:行者123 更新时间:2023-11-30 20:44:10 25 4
gpt4 key购买 nike

所以我正在阅读 Open ID Connect 中描述的 JWT token 格式,其中一个字段 (at_hash) 表示它是从 oauth 访问 token 生成的最左边的 128 位哈希。所以我所做的是获取 token ,对其进行哈希处理,然后尝试将“最左边”的 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;
    }

最佳答案

128 位是 16 个字节,所以你可以这样做:

hash.Take(16).ToArray();

关于c# - 我如何获得 "left-most 128 bits of a byte array"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29758400/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com