【求助】关于.net和java中,AES加密互通问题

love__nana 2018-11-15 12:54:08
我们对接一个.net平台,我们用的是java,对方只有.net的demo,现在要进行AES加密和解密,但一直不能互通
现在贴出.net的版本,哪位全栈大神可以帮忙转换成java的

/// <summary>
/// AES加密
/// </summary>
/// <param name="plainStr">明文字符串</param>
/// <returns>密文</returns>
public static string AESEncrypt(string plainStr , string key,string IV)
{
byte[] bKey = Encoding.UTF8.GetBytes(key);
byte[] bIV = Encoding.UTF8.GetBytes(IV);
//获取16位向量
byte[] ivKey = new byte[16];
int len = bIV.Length;
if (len > ivKey.Length) len = ivKey.Length;
System.Array.Copy(bIV, ivKey, len);

byte[] byteArray = Encoding.UTF8.GetBytes(plainStr);

string encrypt = null;
Rijndael aes = Rijndael.Create();
using (MemoryStream mStream = new MemoryStream())
{
using (CryptoStream cStream = new CryptoStream(mStream, aes.CreateEncryptor(bKey, ivKey), CryptoStreamMode.Write))
{
cStream.Write(byteArray, 0, byteArray.Length);
cStream.FlushFinalBlock();
encrypt = Convert.ToBase64String(mStream.ToArray());
}
}
aes.Clear();

return encrypt;
}

/// <summary>
/// AES解密
/// </summary>
/// <param name="showText">密文字符串</param>
/// <returns>返回解密后的明文字符串</returns>
public static string AESDecrypt(string showText, string key, string IV)
{
byte[] cipherText = Convert.FromBase64String(showText);

SymmetricAlgorithm des = Rijndael.Create();
des.Key = Encoding.UTF8.GetBytes(key);

byte[] bIV = Encoding.UTF8.GetBytes(IV);
//获取16位向量
byte[] ivKey = new byte[16];
int len = IV.Length;
if (len > ivKey.Length) len = ivKey.Length;
System.Array.Copy(bIV, ivKey, len);
des.IV = ivKey;
byte[] decryptBytes = new byte[cipherText.Length];
using (MemoryStream ms = new MemoryStream(cipherText))
{
using (CryptoStream cs = new CryptoStream(ms, des.CreateDecryptor(), CryptoStreamMode.Read))
{
cs.Read(decryptBytes, 0, decryptBytes.Length);
cs.Close();
ms.Close();
}
}
return Encoding.UTF8.GetString(decryptBytes).Replace("\0", ""); ///将字符串后尾的'\0'去掉
}
}

...全文
58 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

51,411

社区成员

发帖
与我相关
我的任务
社区描述
Java相关技术讨论
javaspring bootspring cloud 技术论坛(原bbs)
社区管理员
  • Java相关社区
  • 小虚竹
  • 谙忆
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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