Base64解码String批处理文件

Zay*_*lik 3 base64 encode cmd decode batch-file

我想解码base64编码的文本并使用它来登录网站.base64编码的文本是用户名和密码.我找到了像Base64.exe和b64.exe这样的工具但它们将输入作为文件输入,而在我的情况下输入是一个字符串.请帮助我.所有这些只在批处理文件中完成,并且还从config.txt文件中读取编码文本.

npo*_*aka 6

您可以在CERTUTIL不安装外部软件的情况下使用该命令(尽管它需要临时文件):

@echo off
del /q /f "%temp%\b64"  >nul 2>nul
del /q /f "%temp%\decoded"  >nul 2>nul

set "base64string=YmFzZTY0c3RyaW5n"
echo -----BEGIN CERTIFICATE----->"%temp%\b64"
<nul set /p=%base64string% >>"%temp%\b64"
echo -----END CERTIFICATE----->>"%temp%\b64"

certutil /decode "%temp%\b64" "%temp%\decoded" >nul 2>nul


for /f "useback tokens=* delims=" %%# in ("%temp%\decoded")  do set "decoded=%%#"
echo %decoded%
del /q /f "%temp%\b64"  >nul 2>nul
del /q /f "%temp%\decoded"  >nul 2>nul
Run Code Online (Sandbox Code Playgroud)

您也可以使用powershell,尽管没有临时文件,但它会更慢:

set "base64string=YmFzZTY0c3RyaW5n"
for /f "tokens=* delims=" %%# in ('powershell [System.Text.Encoding]::UTF8.GetString([System.Convert]::FromBase64String("""%base64string%"""^)^)') do set "decoded=%%#"
echo %decoded%
Run Code Online (Sandbox Code Playgroud)

您也可以尝试使用 atob.bat:

call atob.bat YmFzZTY0c3RyaW5n decoded
echo %decoded%
Run Code Online (Sandbox Code Playgroud)

或者使用base64.bat

for /f "tokens=* delims=" %%# in ('base64.bat -decode YmFzZTY0c3RyaW5n') do set "decoded=%%#"
echo %decoded% 
Run Code Online (Sandbox Code Playgroud)

  • 很好的答案,但 powershell 让我发笑。与类似的 linux 命令相比,它似乎总是复杂和难以记住 5 倍。`echo "字符串" | base64` (2认同)