C#与JavaAES加密解密
参考⽂档:
前⼏天对接Java接⼝,需要C#加密参数,Java解密。奈何⽹上了⼀堆⼤同⼩异的加解密⽅法都跟Jaca加密的密⽂不⼀
致,Java接⼝也⽆法解密,直到看见上⾯链接的第⼆种⽅法。能够正常的解密Java加密的密⽂,说明此⽅法有效,但这⾥只有解密,我需要的是加密⽅法(伸⼿党做习惯了),没办法读读代码看看是怎么解密的,巧了看到了 CreateDecryptor 改⼀下试⼀下解密跟Java完全⼀致成功!感谢博主!
这是参考⽂档的博主写的Demo:
///<summary>
/// AES解密
///</summary>
///<param name="data"></param>
/
//<param name="key"></param>
///<returns></returns>
public static string AESDecrypt(string content, string key)
{
KeyGenerator kgen = Instance("AES");
SecureRandom secureRandom = Instance("SHA1PRNG");
secureRandom.setSeed(Encoding.ASCII.GetBytes(key));
kgen.init(128, secureRandom);
SecretKey secretKey = ateKey();
byte[] enCodeFormat = Encoded();
using (AesCryptoServiceProvider aesProvider = new AesCryptoServiceProvider())
{
aesProvider.Key = enCodeFormat;
aesProvider.Mode = CipherMode.ECB;
aesProvider.Padding = PaddingMode.PKCS7;
using (ICryptoTransform cryptoTransform = aesProvider.CreateDecryptor())
{
byte[] inputBuffers = Convert.FromBase64String(content);
byte[] results = cryptoTransform.TransformFinalBlock(inputBuffers, 0, inputBuffers.Length);
aesProvider.Clear();
return Encoding.UTF8.GetString(results);
}
}
}
///<summary>
/// AES加密
///</summary>
///<param name="data"></param>
///<param name="key"></param>
///<returns></returns>
public static string AESEncrypt(string content, string key)
{
KeyGenerator kgen = Instance("AES");
SecureRandom secureRandom = Instance("SHA1PRNG");
secureRandom.setSeed(Encoding.ASCII.GetBytes(key));
kgen.init(128, secureRandom);
SecretKey secretKey = ateKey();
byte[] enCodeFormat = Encoded();
using (AesCryptoServiceProvider aesProvider = new AesCryptoServiceProvider())
{
aesProvider.Key = enCodeFormat;
aesProvider.Mode = CipherMode.ECB;
java加密方式有哪些aesProvider.Padding = PaddingMode.PKCS7;
using (ICryptoTransform cryptoTransform = aesProvider.CreateEncryptor())
{
byte[] inputBuffers = Encoding.UTF8.GetBytes(content);
byte[] results = cryptoTransform.TransformFinalBlock(inputBuffers, 0, inputBuffers.Length);
aesProvider.Clear();
return Convert.ToBase64String(results);
}
}
}
再次感谢博主朱⼩波

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。