输入不是有效的 Base64 字符串,因为它包含一个非 base 64 字符,超过两个填充字符

The input is not a valid Base-64 string as it contains a non-base 64 character, more than two padding characters

您好,我正在尝试使用 tripleDES 算法进行解密。 编码部分如下:

try
{
    System.Security.Cryptography.TripleDESCryptoServiceProvider des = new System.Security.Cryptography.TripleDESCryptoServiceProvider();
    des.IV = new byte[8];
    System.Security.Cryptography.PasswordDeriveBytes pdb = new System.Security.Cryptography.PasswordDeriveBytes(key, new byte[-1 + 1]);
    des.Key = pdb.CryptDeriveKey("RC2", "MD5", 128, new byte[8]);
    byte[] encryptedBytes = Convert.FromBase64String(file);
    System.IO.MemoryStream ms = new System.IO.MemoryStream(file.Length);
    System.Security.Cryptography.CryptoStream decStream = new System.Security.Cryptography.CryptoStream(ms, des.CreateDecryptor(), System.Security.Cryptography.CryptoStreamMode.Write);
    decStream.Write(encryptedBytes, 0, encryptedBytes.Length);
    decStream.FlushFinalBlock();
    byte[] plainBytes = new byte[Convert.ToInt32(ms.Length - 1) + 1];
    ms.Position = 0;
    ms.Read(plainBytes, 0, Convert.ToInt32(ms.Length));
    decStream.Close();
    return Encoding.UTF8.GetString(plainBytes);
}
catch (Exception ex)
{
    throw;
}

加密文件样本

PK YjJ.ÿ×®{9 ËR JOURNAL-ISSUE_6_3907-3916.tif¬ºwPS_÷ð›FM#@!$t¤ØšÐA¤ƒ¡šÐ¤÷&&"]DÔ„"ˆˆˆ¢€ „&* ""K ë÷òý½ÏÜû̽sÿxgÞ5³öúœ½Ï:³Ö:gï={æØÙí à/ îÐŽ€ ÿá_àüÇAwÆþÃÿz€þÃ…þ‡ÿUÑÿb íØ¿;Šþ¯~©ÿbéÿðþeþs¿èN‡,òŸq @î?LØiðÿå«þþ7fþŸØwD(Ú±ª;ƒú;ŒÙaãŽgà œë¼£o~ë;µÞ@Àá¾uhº þÏzÑ ñÿ¶6ÎD›Ðèø„øÀ¸°˜âAÝ};OÖÕ;¨»ÇPO—¨§g¨k¸×à߸8ÿú!€È¨„8WŠÕË›ø/¡ÆÇPœ ÿ¿òmòÒ¼Ðüï$(8>ðßÐwôDL\ÂNLä‹•œó/‡î0&àøÿpÆ¿|ÜÝÕb‡‹wþßE‰—œBt‹IH¦Çãmâè©D;¢s\tHXD0àÿ¸$§$ük-¢cRãÂŽ…&ÿ?Qì”]ðÿÔô‹ûÿú¤GÿßuþWã’þƒ@àS €aÆw6P––€±ÌéÎAûå¹–.užÚ2ùÖ.óI& ŶA®•Ë«•Ù»vÝñÛ]éâv°n2ò@µã1·Îùo'Ì8Ρî†Ò6u®aî]Áû/:5º‡{Ö{^?ÒìyÜ£ëCRÏÑVj„§‘JùÓc·½#=ïßyÝáuĨ~r5¹Û?úȽßþœì¥ÅPUe$رÔîòEÃAq^ÆWŽhWŒ„Ä{u/$›\Mð6Q­8Ü0žèÝr×ïÆTD’É•W‘wßD%ûô,|?ñ€“âkª&Sðp>.Õ÷þ±G—ÒüLŽ\µ’”îw1¹çýzJ†¿™ZÅÓÅ­´þŽÝ}ûy;#ó¨YëÕï¿3O}°øý÷?½Hq°·XKÄC:HAxÅò°>d¾ŠH_q³¶X?rdŸDñŠ b %n…(Ñ:,9ˆrð,‰ð“Båã†Jš#å¢Få–¬œPF‹g“†Kµ ”¡Î©<¸¨ö_¯ñ¸´ùºæôH»ö“Ò•žÝ#’âƒz#gµžîy*éðrßÓ³o<“ÌÿpðÙÙæU£QÉ‘¯&£gWþ˜a$ ”±2m s†èaô”KÔ œÅ(¢bÙ¸¨a?¾O«ìEh½¶Í‹%y3ÇR"ÿ¸¼P?çpÊ#T[9û¥ú o¦§º‰mÎKL“½Ç×öh?O+ú‘Äëg¼¸ÒV%ÞTiùª×¯öï;ä?]îaãéíé-yÜgŸ•_¤´TE”wnb-Õ׳§ÿèë;¥RqGŽdgIÌ>‘vðÀà†ƒ†Ì.§“î÷ÞüÄcj0Q"Î>Ûœ¼·/Mb

当我解密文件时出现异常

The input is not a valid Base-64 string as it contains a non-base 64 character, more than two padding characters, or an illegal character among the padding characters

如何解决?

您的文件已压缩。看到开头的 PK 了吗?它们是 DOS 原始 PKZip 的创建者 Phil Katz 的首字母。你看到 JOURNAL-ISSUE_6_3907-3916.tif 了吗?它是 zip 文件中包含的文件的名称。所以把它保存在某个地方,然后尝试用你最喜欢的打开 zips 的程序打开它。