Powershell base64 与常规 base64

标签 powershell base64

我使用powershell转换字符串

$Text = 'ouser:v3$34@#85b&g%fD79a3nf'
$Bytes = [System.Text.Encoding]::Unicode.GetBytes($Text)
$EncodedText =[Convert]::ToBase64String($Bytes)
$EncodedText 

但是当使用 https://www.base64decode.org/ 时,或一些用于 base64 编码的 java 库,我得到了一个不同的、更短的版本。

示例字符串:

This is a secret and should be hiden



PowerShell 结果:

VABoAGkAcwAgAGkAcwAgAGEAIABzAGUAYwByAGUAdAAgAGEAbgBkACAAcwBoAG8AdQBsAGQAIABiAGUAIABoAGkAZABlAG4A



正常的 base64 结果:

VGhpcyBpcyBhIHNlY3JldCBhbmQgc2hvdWxkIGJlIGhpZGVu



在使用网站时,我可以解码两个版本,但是使用我的 java 代码我只能解码后者。这是为什么?是否有不止一个版本的 base64?这些差异从何而来?

最佳答案

添加来自@Raziel 的评论作为答案,以便更好地发现此问题。
[System.Text.Encoding]::Unicode]是UTF-16,后者是UTF-8。有[System.Text.Encoding]::UTF8你可以使用。

关于Powershell base64 与常规 base64,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45629001/

相关文章:

PowerShell 脚本 - 区分 3 个命令结果

c# - 在javascript中获取base64到silverlight图像

powershell - 为什么 Select-String 会添加空行?

javascript - 重复输出到控制台 - 我必须在哪里插入我的回调?

powershell - 在Powershell中从递归中排除文件夹

Delphi将base64字符串转换为PNG图像

python - 通过base64上传文件

c++ - base64 减少编码十进制数所需的数字

linux - Base64编码修改只是可打印的字符

powershell - 替换讨厌的 'umlaut' |标准方式不起作用