Base64,TripledDES加密解密问题

chichenzhe 2008-01-25 05:25:55
问题:在进行解密的过程中仅仅执行到Base64Decode的步骤就出问题了(全是乱码)
基本模式:EncodeStr = URLEncoding(Base64(Encrypt( 未加密串 ))) 密钥:zjdh38ds
环境:对方java,我是C#

我事先已经自己访问自己测试通过了。
自己实现EncodeStr = URLEncoding(Base64(Encrypt( 未加密串 )))
然后自己对这个字符串进行解密
解密步骤:
1,URLEncoding
2,Base64
3,Decrypt
可以完全通过,没有任何错误和乱码。

但在与对方通信,通过HTTP协议。测试的时候发现:
在我把对方的串(91gTJ3pKqTvogitNne6BHmP0yEZAqKSvgHm7/pQcvTRa0ffv9rhq2rhfFyTojyzIObCW7eqkuEs=)拿过来解析的时候 仅仅执行到 Base64 这一步骤就出现错误,全是乱码 -- 请问如何解决这一问题。

我所使用的代码:
/// <summary>
/// 解密方法
/// </summary>
/// <param name="content">需要解密的密文内容</param>
/// <param name="secret">解密密钥</param>
/// <returns>返回解密后明文字符串</returns>
public static string Decrypt(string content,string secret)
{
if ((content == null) || (secret == null) || (content.Length == 0) || (secret.Length == 0))
throw new ArgumentNullException("Invalid Argument");

try
{


byte[] Key = TicketTool.GetKey(secret);

byte[] CryByte = TicketTool.Base64Decode(Encoding.ASCII.GetBytes(content));
byte[] DecByte = TicketTool.Decrypt(CryByte,Key);

byte[] RealDecByte;
string RealDecStr;

RealDecByte = DecByte;
byte[] Prefix = new byte[Constants.Operation.UnicodeReversePrefix.Length];
if (RealDecByte.Length >= 2)
{
Array.Copy(RealDecByte,Prefix,2);


if (TicketTool.CompareByteArrays(Constants.Operation.UnicodeReversePrefix,Prefix))
{
byte SwitchTemp = 0;
for (int i = 0; i < RealDecByte.Length - 1; i = i + 2)
{
SwitchTemp = RealDecByte[i];
RealDecByte[i] = RealDecByte[i + 1];
RealDecByte[i + 1] = SwitchTemp;

}

}
}
RealDecStr = Encoding.Unicode.GetString(RealDecByte);
return RealDecStr;


}
catch(Exception e)
{
throw e;
}
}

各种对Base64进行解码的函数我也都实验了(网上有很多对Base64进行解码的函数,有自写的,也有对系统函数调用的。),统统无效(无法解析对方的串,而我自己生成的串能正常解析),拿出一个函数例子:
public string DecodeBase64(string code_type,string code)
{
string decode = "";
byte[] bytes = Convert.FromBase64String(code);
try
{
decode = Encoding.GetEncoding(code_type).GetString(bytes);
}
catch(System.Exception ex)
{
Console.WriteLine(ex.ToString());
decode = code;
}
return decode;
}
...全文
142 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
chichenzhe 2008-01-26
  • 打赏
  • 举报
回复
求答案呀...
chichenzhe 2008-01-25
  • 打赏
  • 举报
回复
快被折磨疯了...

111,117

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • AIGC Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧