Powershell base64 vs regular base64
Adding the comment from @Raziel as an answer for better discoverability of this question.
[System.Text.Encoding]::Unicode]
is UTF-16, the later is UTF-8. There's [System.Text.Encoding]::UTF8
that you can use.
Zerg
Updated on July 19, 2022Comments
-
Zerg almost 2 years
I use powershell to convert string
$Text = 'ouser:v3$34@#85b&g%fD79a3nf' $Bytes = [System.Text.Encoding]::Unicode.GetBytes($Text) $EncodedText =[Convert]::ToBase64String($Bytes) $EncodedText
However when using https://www.base64decode.org/, or some java libraries for base64 encoding I get a different, shorter version.
Sample string:
This is a secret and should be hiden
powershell result:
VABoAGkAcwAgAGkAcwAgAGEAIABzAGUAYwByAGUAdAAgAGEAbgBkACAAcwBoAG8AdQBsAGQAIABiAGUAIABoAGkAZABlAG4A
normal base64 result:
VGhpcyBpcyBhIHNlY3JldCBhbmQgc2hvdWxkIGJlIGhpZGVu
While using the website I am able to decode both versions, however using my java code I am only able to decode the latter. Why is that? Is there more than one version of base64? Where those differences come from?