AES加密(C#)
/// <summary>
/// AES加密算法
/// </summary>
/// <param name="plainText">明文字符串</param>
/// <param name="aesKey">密钥,密钥最大长度32</param>
/// <returns>将加密后的密文转换为Base64编码,以便显示</returns>
public static string AESEncrypt(string plainText, string aesKey)
{
string result = "";
try
{
if (String.IsNullOrEmpty(plainText) || String.IsNullOrEmpty(aesKey))
{
return null;
}
//分组加密算法
RijndaelManaged rijndaelCipher = new RijndaelManaged();
// SymmetricAlgorithm rijndaelCipher = Rijndael.Create();
byte[] inputByteArray = Encoding.UTF8.GetBytes(plainText); //得到需要加密的字节数组
//设置密钥及密钥向量
byte[] btAesKey = Encoding.UTF8.GetBytes(aesKey);
byte[] btAesKey32 = new byte[32];
Buffer.BlockCopy(btAesKey, 0, btAesKey32, 0, Math.Min(btAesKey.Length, btAesKey32.Length));
rijndaelCipher.Key = btAesKey32;
rijndaelCipher.GenerateIV();
byte[] keyIv = rijndaelCipher.IV;
byte[] cipherBytes = null;
using (MemoryStream ms = new MemoryStream())
{
using (CryptoStream cs = new CryptoStream(ms, rijndaelCipher.CreateEncryptor(), CryptoStreamMode.Write))
{
cs.Write(inputByteArray, 0, inputByteArray.Length);
cs.FlushFinalBlock();
cipherBytes = ms.ToArray(); //得到加密后的字节数组
cs.Close();
ms.Close();
}
}
string base64 = Convert.ToBase64String(keyIv.Concat(cipherBytes).ToArray()); //合成随机向量,并base64编码
//result = System.Uri.EscapeDataString(base64); //Url编码
result=base64;
}
catch (Exception)
{
result = null;
}
return result;
}
https://blog.csdn.net/junboliang/article/details/94552739
参考这个文档
您好,我是有问必答小助手,您的问题已经有小伙伴解答了,您看下是否解决,可以追评进行沟通哦~
如果有您比较满意的答案 / 帮您提供解决思路的答案,可以点击【采纳】按钮,给回答的小伙伴一些鼓励哦~~
ps:问答VIP仅需29元,即可享受5次/月 有问必答服务,了解详情>>>https://vip.csdn.net/askvip?utm_source=1146287632