Base64 不是加密——用 PowerShell 亲眼确认“可逆性”

PowerShellカテゴリを表すパンダのイラスト PowerShell

关于本文
本文是通过利用生成式 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

文档信息

文章??
Base64 不是加密——用 PowerShell 亲眼确认“可逆性”
?布日期
更新日期
来源
https://papanda925.com/?p=15426&lang=zh

?可: ?于本站?有相??利的正文及原??表,除非?有?明,可依据 CC BY 4.0 使用。本文可能包含使用生成式AI?建或??的内容。若代??有?可声明,或?接的GitHub???定了?可,?代?以??可?准。引用内容、第三方?料、?片及商?不在本?可范?内。 使用政策

标题和URL已复制