Я использую 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:
VABoAGkAcwAgAGkAcwAgAGEAIABzAGUAYwBYAUADAAGAGEAbgBkaACAAcwBoAG8AdQBsAGQAIABiAGUIABOAGkAZABlAG4A
нормальный результат base64:
VGhpcyBpcyBhIHNlY3JldCBhbmQgc2hvdWxkIGJlIGhpZGVu
При использовании веб-сайта я могу декодировать обе версии, однако, используя свой код Java, я могу декодировать только последнюю. Почему это? Существует ли более одной версии base64? Откуда эти различия?
[System.Text.Encoding]::Unicode
— это UTF-16, последний — UTF-8. Есть[System.Text.Encoding]::UTF8
, которые вы можете использовать. - person Thomas Glaser   schedule 11.08.2017