using System.Collections.Generic;
using System.Security.Cryptography;
public class CryptoEngine
public static string AESDecrypt(string data, string key)
CryptoStream cryptoStream = null;
MemoryStream mStream = null;
RijndaelManaged aes = null;
Byte[] encryptedBytes = Convert.FromBase64String(data);
Byte[] bKey = new Byte[32];
Array.Copy(Encoding.UTF8.GetBytes(key.PadRight(bKey.Length)), bKey, bKey.Length);
mStream = new MemoryStream(encryptedBytes);
aes = new RijndaelManaged();
aes.Mode = CipherMode.ECB;
aes.Padding = PaddingMode.PKCS7;
cryptoStream = new CryptoStream(mStream, aes.CreateDecryptor(), CryptoStreamMode.Read);
byte[] tmp = new byte[encryptedBytes.Length + 32];
int len = cryptoStream.Read(tmp, 0, encryptedBytes.Length + 32);
byte[] ret = new byte[len];
Array.Copy(tmp, 0, ret, 0, len);
return Encoding.UTF8.GetString(ret);
throw new Exception("解密失败", ea);
public static string AESEncrypt(string data, string key)
MemoryStream mStream = new MemoryStream();
RijndaelManaged aes = new RijndaelManaged();
byte[] plainBytes = Encoding.UTF8.GetBytes(data);
Byte[] bKey = new Byte[32];
Array.Copy(Encoding.UTF8.GetBytes(key.PadRight(bKey.Length)), bKey, bKey.Length);
aes.Mode = CipherMode.ECB;
aes.Padding = PaddingMode.PKCS7;
CryptoStream cryptoStream = new CryptoStream(mStream, aes.CreateEncryptor(), CryptoStreamMode.Write);
cryptoStream.Write(plainBytes, 0, plainBytes.Length);
cryptoStream.FlushFinalBlock();
return Convert.ToBase64String(mStream.ToArray());
public static string ToBase64(string data)
var arry = Encoding.UTF8.GetBytes(data);
return Convert.ToBase64String(arry);
public static void Main()
'loadInNo': 'RV2019070001',
'supplierContactInfo': '010-64391991',
'dateOfArrival': '20190705',
'transportType': 'TRUCK',
string base64body = CryptoEngine.ToBase64(body);
string key = "53802cc22bed11e897af000c297d9098";
string en = CryptoEngine.AESEncrypt(base64body, key);
string de = CryptoEngine.AESDecrypt(en, key);
Console.WriteLine("body : "+body);
Console.WriteLine("Base64 body : "+base64body);
Console.WriteLine("Encrypted str1 : "+en);