| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748 |
- using System.Text;
- using System.Security.Cryptography;
- namespace Common
- {
- public class CryptHelper
- {
- /// <summary>
- /// aes加密
- /// </summary>
- /// <param name="str">加密字符串</param>
- /// <param name="key">密钥</param>
- /// <param name="iv">向量</param>
- /// <param name="mode">加密模式</param>
- /// <param name="padding">填充模式</param>
- /// <returns>加密后字符串</returns>
- public static string AesEncrypt(string str, string key, string iv, string mode = "CBC", string padding = "PKCS7")
- {
- if (string.IsNullOrEmpty(str)) return null;
- Byte[] toEncryptArray = Encoding.UTF8.GetBytes(str);
- CipherMode cipherMode = CipherMode.CBC;
- PaddingMode paddingMode = PaddingMode.PKCS7;
- if(mode == "CBC") cipherMode = CipherMode.CBC;
- if(mode == "ECB") cipherMode = CipherMode.ECB;
- if(mode == "CFB") cipherMode = CipherMode.CFB;
- if(mode == "CTS") cipherMode = CipherMode.CTS;
- if(padding == "PKCS7") paddingMode = PaddingMode.PKCS7;
- if(padding == "None") paddingMode = PaddingMode.None;
- if(padding == "Zeros") paddingMode = PaddingMode.Zeros;
- if(padding == "ISO10126") paddingMode = PaddingMode.ISO10126;
- if(padding == "ANSIX923") paddingMode = PaddingMode.ANSIX923;
- System.Security.Cryptography.RijndaelManaged rm = new System.Security.Cryptography.RijndaelManaged
- {
- Key = Encoding.UTF8.GetBytes(key),
- IV = Encoding.UTF8.GetBytes(iv),
- Mode = cipherMode,
- Padding = paddingMode
- };
- System.Security.Cryptography.ICryptoTransform cTransform = rm.CreateEncryptor();
- Byte[] resultArray = cTransform.TransformFinalBlock(toEncryptArray, 0, toEncryptArray.Length);
- string jsonData = Convert.ToBase64String(resultArray, 0, resultArray.Length);
- return Convert.ToBase64String(Encoding.UTF8.GetBytes(jsonData));
- }
-
- }
- }
|