输入不是有效的Base-64字符串,因为它包含非基本64个字符,超过两个填充字符

时间:2017-03-10 06:51:50

标签: c# algorithm encryption tripledes

我正在尝试使用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;
}

加密文件样本

  

PKYjJ.ÿ×®{9ËRJOURNAL-ISSUE_6_3907-3916.tif¬ºwPS_÷ð> FM#@!$t¤ØšÐA¤ƒ¡Ð¤÷&amp;&amp;“]DÔ”“¢与“&amp; *   “”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ÖÕ;¨»CPO-¨§g¨k¸×à߸8ÿú!€È¨„8WŠÕË›ø/¡ÆÇPœ ÿ¿òmòÒ¼Ðüï$(8>ðßÐwôD L \ÂNLä<•OEO /‡I0&安培;àøÿpÆ¿|ÜÝÕb‡Ò6u®aî] AU /:5°‡{Ö{^ÒìyÜ£ëCRÏÑVj“§'JùÓc·½ ?#=ïßyÝáuĨ〜r5¹ÛúȽßþœì¥APUE $رÔîòEÃAq^ÆWŽhWŒ“A {U / $> \Mð6Q8Ü0žèÝr×ïÆTD'É•W'wßD%的UO,| N€?“âkª&安培; SDP&GT; .O÷þ± G-ÒüLŽ\μ'“îw1¹çýzJ†¿¿ZÅÓÅ'þŽÝ}ûy;#ó¨YëÕï¿3O}°øý÷?½Hq°·XKÄC:HAxÅò°&gt;d¾ŠH_q³¶X?rdŸDñŠb%n ...(Ñ :,9rð,‰d“BAA†JS#A¢FA-¬œPF¸¨ö_¯ñ¸'ùºæôH»ö”•žÝ#'âz##gμžîy*éðrßÓ³o&lt;“ÌÿpðÙÙæU£QÉ'¯&amp;£gWþ〜a $”±2m s† èaô“KÔœÅ(¢bÙ¸¨a?¾O«ìEh½¶Í<%y3ÇR”ÿ¸¼P?çpÊ#T [9û¥úo|§º‰mÎKL“½Ç×öh?O +ú'Äëg¼¸ÒV %ÞTiùª×OI; A]îaãéíé-yÜgŸ•_¤'TE?” WNB-O׳§ÿèë;¥RqGŽdgIÌ&GT;'vðÀà†ƒ†Ì.§“î÷ÞüÄcj0Q“I&GT;Ûœ¼·/ MB

当我解密文件时,我得到例外

  

输入不是有效的Base-64字符串,因为它包含非基本64个字符,两个以上的填充字符或填充字符中的非法字符

如何解决这个问题?

1 个答案:

答案 0 :(得分:2)

您的文件已压缩。一开始见PK?它们是Phil Katz的缩写,是原始PKZip for DOS的创建者。你看到JOURNAL-ISSUE_6_3907-3916.tif了吗?它是zip文件中包含的文件的名称。所以将它保存在某个地方并尝试用你最喜欢的程序打开拉链。