为什么这两行代码给出相同的结果? (第三个字符不同)
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' 也彼此不同
为什么我在第一个示例中得到相同的结果?我在这里缺少什么?
base-64 是每个字符 6 位数据; 3 个字符可提供 18 位,但对于两个字节,您只需要 16 位。这就留下了 2 位噪声。噪音的任何变化:都无关紧要。您看到的变化仅存在于噪声位中。