は、この質問はおそらく、回答されているが、私はそれどのようにしてbase64でlinux上の文字列をエンコードすることができるので、 "Unicode.GetBytes.ToBase64String"というウィンドウに一致しますか?
質問
どのようにI「base64でエンコード」が一致した「何のウィンドウが期待する」ので、bashの文字列、すなわち「Unicodeを見つけることができませんでした
コンテキスト「.GetBytes.ToBase64String
PowerShellのヘルプテキストは、この例があり
$command='dir'
$bytes = [System.Text.Encoding]::Unicode.GetBytes($command)
$encodedCommand = [Convert]::ToBase64String($bytes)
echo $encodedCommand
powershell.exe -encodedCommand $encodedCommand
Windowsの出力エンコード出力がこれです
:Linux上
ZABpAHIA
非常に異なる結果
私はLinux上で同じことをすれば、私はこれを取得:
echo "dir" | base64
ZGlyCg==
エンコーディング?
「iconv」を使用してエンコードを変換しようとしましたが、運がない、つまり同じ結果が得られました。
エコーDIR |のiconv -f ASCII -t UTF-8 | BASE64
違い
ですから、2つの違いを確認できます。
- 英数字の文字が「
- 末尾が異なります=== "はLinuxに表示されます
をエコー 'より望ましいprintf''使い方 - n ': '変数=' dir '; printf '%s' "$ variable" ' –
末尾=はパディングに使用されます。ストリングは、その長さが4であるため、おそらく埋められるでしょう。実際、3つの元のバイトごとに、3つの8ビット= 4 x 6ビットとして4つのエンコードされたバイトが与えられます。 – Phil1970