【发布时间】:2017-03-10 06:51:50
【问题描述】:
您好,我正在尝试使用 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ð6Q8Ü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'vðÀà†ƒ†Ì.§“î÷ÞüÄcj0Q"Î>Ûœ¼·/Mb
当我解密文件时出现异常
输入不是有效的 Base-64 字符串,因为它包含非 base 64 字符、两个以上的填充字符或填充字符中的非法字符
如何解决?
【问题讨论】:
-
你的输入不是base64的,那你为什么要像它一样解码呢?
-
我需要解密并想要执行一些操作
标签: c# algorithm encryption tripledes