WebEncoders.Base64UrlDecode 对于不同的字符串返回相同的结果

问题描述 投票:0回答:1

为什么这两行代码给出相同的结果? (第三个字符不同)

Convert.FromBase64CharArray(new []{'a', 'a', 'a', '='}, 0, 4)
Convert.FromBase64CharArray(new []{'a', 'a', 'b', '='}, 0, 4)

// Result for both lines:
{byte[2]}
  [0]: 105
  [1]: 166

其他测试提供了这些见解

'a'、'a'、'c'、'='不同(第二个字节是167)

'a', 'a', 'a', 'a' 和 'a', 'a', 'a', 'b' 也彼此不同

为什么我在第一个示例中得到相同的结果?我在这里缺少什么?

c# base64 decoding
1个回答
0
投票

base-64 是每个字符 6 位数据; 3 个字符可提供 18 位,但对于两个字节,您只需要 16 位。这就留下了 2 位噪声。噪音的任何变化:都无关紧要。您看到的变化仅存在于噪声位中。

© www.soinside.com 2019 - 2024. All rights reserved.