怎么用java解密 C# 写的3DES加密的串 我想用java解密 关键是Key 又被MD5加密 哈稀了~ 求java示例ing ..................以下是C#带代码 public static string Encrypt3DES(string strString, string strKey)
{
TripleDESCryptoServiceProvider provider = new TripleDESCryptoServiceProvider();
provider.Key = new MD5CryptoServiceProvider().ComputeHash(Encoding.ASCII.GetBytes(strKey));
provider.Mode = CipherMode.ECB;
ICryptoTransform transform = provider.CreateEncryptor();
byte[] bytes = Encoding.ASCII.GetBytes(strString);
return Convert.ToBase64String(transform.TransformFinalBlock(bytes, 0, bytes.Length));
}
public static string Decrypt3DES(string strString, string strKey)
{
TripleDESCryptoServiceProvider provider = new TripleDESCryptoServiceProvider();
provider.Key = new MD5CryptoServiceProvider().ComputeHash(Encoding.ASCII.GetBytes(strKey));
provider.Mode = CipherMode.ECB;
ICryptoTransform transform = provider.CreateDecryptor();
string str = "";
try
{
byte[] inputBuffer = Convert.FromBase64String(strString);
str = Encoding.ASCII.GetString(transform.TransformFinalBlock(inputBuffer, 0, inputBuffer.Length));
}
catch (Exception exception)
{
throw new Exception("无效的密钥或源字符串不是有效的BASE64格式。", exception);
}
return str;
}
{
TripleDESCryptoServiceProvider provider = new TripleDESCryptoServiceProvider();
provider.Key = new MD5CryptoServiceProvider().ComputeHash(Encoding.ASCII.GetBytes(strKey));
provider.Mode = CipherMode.ECB;
ICryptoTransform transform = provider.CreateEncryptor();
byte[] bytes = Encoding.ASCII.GetBytes(strString);
return Convert.ToBase64String(transform.TransformFinalBlock(bytes, 0, bytes.Length));
}
public static string Decrypt3DES(string strString, string strKey)
{
TripleDESCryptoServiceProvider provider = new TripleDESCryptoServiceProvider();
provider.Key = new MD5CryptoServiceProvider().ComputeHash(Encoding.ASCII.GetBytes(strKey));
provider.Mode = CipherMode.ECB;
ICryptoTransform transform = provider.CreateDecryptor();
string str = "";
try
{
byte[] inputBuffer = Convert.FromBase64String(strString);
str = Encoding.ASCII.GetString(transform.TransformFinalBlock(inputBuffer, 0, inputBuffer.Length));
}
catch (Exception exception)
{
throw new Exception("无效的密钥或源字符串不是有效的BASE64格式。", exception);
}
return str;
}
我以前研究aes就是解决java与c#的互通,最大的差别就在byte的定义上,一个是有符号,一个是无符号,总之楼主要么找现成的,要么就去理解3des,反正不难