use*_*136 12 base64 powershell-3.0
我正在尝试从base64解码电子邮件文件中的附件并将其保存到磁盘.
出于测试目的,这是我的代码.其中input.txt只包含base64编码数据,这是一个HTML文件.
$file = "C:\input.txt"
$data = Get-Content $file
[System.Text.Encoding]::ASCII.GetString([System.Convert]::FromBase64String($data)) > out.html
Run Code Online (Sandbox Code Playgroud)
解码工作正常,它生成一个包含所有行的新文件,并且与原始附件明显相同.问题是输出文件的大小是两倍(实际上(filesize*2)+6字节,在这种情况下).
我不正确地解码了吗?我也试过UTF8而不是ASCII ...同样的结果.
NYC*_*Net 13
这种单行保留了 base64 编码文件的原始编码,因此它可以处理二进制文件,例如 PDF 或 ZIP。变化".\input.txt"和output.bin需要-这需要.\input.txt,基地64解码,然后写字节出output.bin完全一样,当文件进行编码他们。
$file = ".\input.txt"; [System.Convert]::FromBase64String((Get-Content $file)) | Set-Content output.bin -Encoding Byte
Run Code Online (Sandbox Code Playgroud)
use*_*136 11
好吧,我让它工作.谁知道Out-File默认重新编码为Unicode?通过执行以下操作解决:
$file = "C:\input.txt"
$data = Get-Content $file
[System.Text.Encoding]::ASCII.GetString([System.Convert]::FromBase64String($data)) | Out-File -Encoding "ASCII" out.html
Run Code Online (Sandbox Code Playgroud)
小智 8
在 Windows 10 上,使用 PowerShell,您可以执行以下操作:
certutil -decode in.b64 out.txt
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
32550 次 |
| 最近记录: |