关于本文
本文是通过利用生成式 AI 的自动化工作流创建的。我们确认了 .NET 的 Base64 转换 API,并将其整理成仅通过虚拟字符串就能观察编码和还原过程的形式。验证状态:📘 已确认 .NET 官方规范・未在实机上验证
Base64 是使数据更容易以字符串形式传输的编码方式。由于不需要密钥即可还原,因此它不能替代用于保护机密的加密。
首先尝试
$text = 'papanda-demo' $b64 = [Convert]::ToBase64String([Text.Encoding]::UTF8.GetBytes($text)) $b64 [Text.Encoding]::UTF8.GetString([Convert]::FromBase64String($b64))
看这里
第二行的外观会发生变化,但如果最后能原封不动地还原出 papanda-demo,即代表成功。由于密码也可以用同样的方式还原,因此不能说仅仅转成 Base64 就安全了。
修改一处试试
papanda-demo 将其改写为 パンダ。由于是将 UTF-8 的字节序列转换为 Base64,因此可以确认即使是日语也能往返转换。
为什么会这样
Base64 是一种将 3 个字节映射为相当于 4 个字符的表示方式。并不存在解密密钥,只要知道转换规则,任何人都可以还原。
graph LR A[文字列] --> B[UTF-8 bytes] B --> C[Base64] C --> D[bytesへ復元] D --> E[元の文字列]
如果在工作中应用
它适用于在电子邮件或 JSON 等难以直接处理二进制文件的场景中进行表达。另一方面,切勿将令牌(token)或密码(password)转为 Base64 并放入配置文件中称为“加密”。为了保护机密,请使用操作系统的凭据机制、秘密管理服务以及适当的加密算法。
Microsoft .NET Convert.ToBase64String: https://learn.microsoft.com/dotnet/api/system.convert.tobase64string
Microsoft .NET Convert.FromBase64String: https://learn.microsoft.com/dotnet/api/system.convert.frombase64string
