我使用powershell转换字符串
$Text = 'ouser:v3$34@#85b&g%fD79a3nf'
$Bytes = [System.Text.Encoding]::Unicode.GetBytes($Text)
$EncodedText =[Convert]::ToBase64String($Bytes)
$EncodedText
但是当使用https://www.base64decode.org/或某些java库进行base64编码时,我会得到一个不同的,更短的版本。
示例字符串:
这是一个秘密,应该隐藏
powershell结果:
VABoAGkAcwAgAGkAcwAgAGEAIABzAGUAYwByAGUAdAAgAGEAbgBkACAAcwBoAG8AdQBsAGQAIABiAGUAIABoAGkAZABlAG4A
普通base64结果:
VGhpcyBpcyBhIHNlY3JldCBhbmQgc2hvdWxkIGJlIGhpZGVu
在使用网站时,我能够解码这两个版本,但是使用我的java代码,我只能解码后者。这是为什么?是否有多个版本的base64?这些差异来自哪里?
答案 0 :(得分:1)
添加@Raziel的评论,以更好地发现此问题。
[System.Text.Encoding]::Unicode]
是UTF-16,后面是UTF-8。您可以使用[System.Text.Encoding]::UTF8
。