分润宝
> 常见问题 > 技术文档
AES加密和解密
/// <summary>
/// AES 加密 与java特殊处理秘钥后结果一致
/// </summary>
/// <param name="str">明文(待加密)</param>
/// <param name="key">密文</param>
/// <returns></returns>
private static string AESEncrypt(string str, string key)
{
if (string.IsNullOrEmpty(str)) return null;
Byte[] toEncryptArray = Encoding.UTF8.GetBytes(str);
byte[] keyArray = null;
using (var sha1 = new SHA1CryptoServiceProvider())
{
byte[] hash = sha1.ComputeHash(Encoding.UTF8.GetBytes(key));
var rd = sha1.ComputeHash(hash);
keyArray = rd.Take(16).ToArray();
}
RijndaelManaged rm = new RijndaelManaged
{
Key = keyArray,
Mode = CipherMode.ECB,
Padding = PaddingMode.PKCS7
};
ICryptoTransform cTransform = rm.CreateEncryptor();
Byte[] resultArray = cTransform.TransformFinalBlock(toEncryptArray, 0, toEncryptArray.Length);
return Convert.ToBase64String(resultArray, 0, resultArray.Length);
}
/// <summary>
/// AES 解密
/// </summary>
/// <param name="str">明文(待解密)</param>
/// <param name="key">密文</param>
/// <returns></returns>
private static string AESDecrypt(string str, string key)
{
if (string.IsNullOrEmpty(str)) return null;
Byte[] toEncryptArray = Convert.FromBase64String(str);
byte[] keyArray = null;
using (var sha1 = new SHA1CryptoServiceProvider())
{
byte[] hash = sha1.ComputeHash(Encoding.UTF8.GetBytes(key));
var rd = sha1.ComputeHash(hash);
keyArray = rd.Take(16).ToArray();
}
RijndaelManaged rm = new RijndaelManaged
{
Key = keyArray,
Mode = CipherMode.ECB,
Padding = PaddingMode.PKCS7
};
ICryptoTransform cTransform = rm.CreateDecryptor();
Byte[] resultArray = cTransform.TransformFinalBlock(toEncryptArray, 0, toEncryptArray.Length);
return Encoding.UTF8.GetString(resultArray);
}
分润宝是一家互联网软件开发公司,主营分润管理系统、支付联盟系统、共享股东分红系统开发,专注各种模式的分润系统开发,如果您有分润分红相关系统需求就来找分润宝。
如果没有解决您的问题,请立即联系客服!
声明:文章"AES加密和解密"部分内容源于网络,如有涉及侵权请联系处理,谢谢合作!