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

Convert.FromBase64String("aaa=") 
Convert.FromBase64String("aab=")

两行的结果相同-十六进制-[0x69,a6]/DECIMAL[105,166]

其他测试提供了这insights个:

  • 换回后得到另一个不同的字符串-aaY=:Convert.ToBase64String(Convert.FromBase64String("aaa="))
  • "AAC="不同[105,167]
  • "aaaa"和"aaab"被解码成不同的序列

为什么我在第一个示例中得到了相同的结果?我错过了什么吗?

推荐答案

64进制是每个字符6位数据;3个字符提供18位,但对于两个字节,您只需要16位.这就留下了2位噪声.噪音中的任何变化都无关紧要.您所看到的变化仅体现在噪音部分.

Csharp相关问答推荐

Blazor:用参数创建根路径

使用C#中的Shape API从Azure目录获取所有用户

无法从具有一对多关系的C#类中使用Swagger创建记录

错误401未授权ASP.NET Core.使用JWT创建身份验证/授权

解析需要HttpClient和字符串的服务

将XPS转换为PDF C#

如何在C#中使用正则表达式抓取用逗号分隔的两个单词?

如何在没有额外副本的情况下将存储在IntPtr下的原始图像数据写入WinUI3中的Image控件?

Quartz调度程序不调用作业(job)类

如何管理Azure认证客户端响应和证书 fingerprint

当我将`ConcurentDictionary`转换为`IDictionary`时,出现了奇怪的并发行为

如何返回具有泛型的类?

如何在mediatr命令中访问HttpContext而不安装弃用的nuget包

用于请求用户返回列表的C#Google API

如何正确地在VB中初始化类?

Autofac -动态实例化:手动传递构造函数

根据优先级整理合同列表

C#;AvaloniaUI;MVVM;当另一个窗口上的按钮被单击时,如何更新视图图像源?

如何保存具有多个重叠图片框的图片框?

嵌套Blazor组件内的验证