在某些情况下,PowerShell脚本从Base64解码的数据已损坏

时间:2017-05-11 21:06:59

标签: powershell base64

使用Base64编码的一些二进制数据我使用下面的powershell脚本转换回二进制文件。它适用于例如由C#代码编码的PDF文件,用于包含在XML文档中。

但是现在我尝试使用不同类型的二进制数据使用相同的脚本 - 使用Bouncy Castle库for .NET使用PGP加密的文本。并且这个解码的文件无法解密(PGP错误34),即使下面的相同Base 64字符串保存在SQL数据库varchar(max)列中,我也会将其读回并解密。为什么PowerShell解码Base64与c#代码不同?两者都使用.NET ...

$b64      = '4oCmAgwDw4HCq8O3FcKgVHHDpQEPw79Fw5E1xZLDoyLCtB9+D8OqHMKdQMKl4oCTGMOBwqBK4oCURAbDug/Cr8OGFXPDk8K4MMOTw4/igKF2w71Mw64VJHfigqzCoELDsFLCoxvDnsKwEcO0MsK4aMOSWcOIOsOQWMOAw5UydcKvwrUmw6BCw6oaDsWhw5/DlnoKw5bCokdjTMOfSBDFoC5KxaHCrR/DoMOtbQAUw6/DvCDDujJfw7YcxZPigJM4w4HDmMOZABAuw67CkMOCwp3DscK5KMOCxaHCsOKAsMWhenLDh8ObAkvCt8O5XzA7w7PFvcO6bcK2SQ9iwp3DkcKd4oCcbMOqYcW+w6pz4oC6Y+KAmcKowqcIAzIlw5LDuyrCvsKwTF7FoMO7ZH8kaOKAoMKPb8OOSSAaeF8VT8WhVMOew6gwwqfDrEFXRkjDtsO14oCdw4UULUF9w6HDtMO+wrzCqUHDl8OYw5sqZl5Dwr0j4oCYWsOK4oCaxZLDmMK8ZCldJ0/DtsOvesO4w5PDkmYlBOKAk8uGwrnCtMK6y4bDtMOwEMOfRUnigLoZK0ZXw4wea0IEw5fDgMOwWWlpWFbDoHtRxb3CtsOhwo3igKExw4/igJrCrGLDnMKqw7DigJPCo8OzIMWSA8OVC2fDlMOqwo8fw63igqx4EzFB4oCcV1hdQjhXRcOWMcKgZXXCuknDiDXDnVAUy5xRLMOlAsW4w5TCvMKsxaHDmBDDkDrDgcONwo3CjUkuHAXDhTXigJjDlHfigKBXacKieMKq4oCTPVgCLgxxdsOhfBPDhOKAlMOzIDZkU8OKIDUfYkHDilwtxb11w4RWB8KhZRHCrMOpBjDDrsOUw5jCowM0wo3Cu1XDr8O4KmkKw4zigJTigKLigJzigJ4ewrDigKLDu8K1wqXDo2I8y4bDnUpnwq9mw6rCvcO4XnDCocKySChiw4nDuAM44oCdbeKAmcOYdcKBXOKAmcO3Q8W+XMOIMMOQ4oCmw7rCusONDWHDnwvDk8O7w5Ydwqojw51GPnosw5vDrHsSPCIsw53DkGIOy4bFkhHCocOHwr3Dow3DtsOGw73Dk2JY4oKsBxd7w4knT3XFuGJBwrd34oSiXsKtCwPCqhzDpBZZRxF2b8OGwqnDrcOqaQfDiBjFkgZdw44GdwDDrsOOLQ=='
$filename = '1.bin'

$bytes = [Convert]::FromBase64String($b64)
[IO.File]::WriteAllBytes($filename, $bytes)

1 个答案:

答案 0 :(得分:0)

(只是在这里考虑加载)

此处可能需要更多信息。您的代码正在获取字符串并将其转换为原始二进制文件,然后将其输出到文件中。如果您再重新导入它并将其转换回来,它就可以了。

您是否尝试从两个进程中获取数据并比较输出?例如,一个可能有一个标题,而另一个则没有。