using System.Security.Cryptography;
public static void Main()
byte[] ct = Encrypt(123456, "The quick brown fox jumps over the lazy dog45678", 7890);
string dt = Decrypt(123456, ct, 7890);
public static byte[] Encrypt(int key, string plainText, int iv)
Aes aesAlg = Aes.Create();
string keyString = key.ToString();
Rfc2898DeriveBytes sourceDeriveBytes = new(keyString, Encoding.UTF8.GetBytes(keyString));
byte[] keyBytes = sourceDeriveBytes.GetBytes(16);
string ivString = iv.ToString();
Rfc2898DeriveBytes zendeskDeriveBytes = new(ivString, Encoding.UTF8.GetBytes(ivString));
byte[] ivBytes = zendeskDeriveBytes.GetBytes(16);
aesAlg.Padding = PaddingMode.None;
ICryptoTransform encryptor = aesAlg.CreateEncryptor(aesAlg.Key, aesAlg.IV);
using (MemoryStream msEncrypt = new MemoryStream())
using (CryptoStream csEncrypt = new CryptoStream(msEncrypt, encryptor, CryptoStreamMode.Write))
using (StreamWriter swEncrypt = new StreamWriter(csEncrypt))
swEncrypt.Write(plainText);
encryptedText = msEncrypt.ToArray();
public static string Decrypt(int key, byte[] encryptedText, int iv)
Aes aesAlg = Aes.Create();
string keyString = key.ToString();
Rfc2898DeriveBytes pbkdf = new(keyString, Encoding.UTF8.GetBytes(keyString));
byte[] keyBytes = pbkdf.GetBytes(16);
string ivString = iv.ToString();
Rfc2898DeriveBytes zendeskDeriveBytes = new(ivString, Encoding.UTF8.GetBytes(ivString));
byte[] ivBytes = zendeskDeriveBytes.GetBytes(16);
aesAlg.Padding = PaddingMode.None;
ICryptoTransform decryptor = aesAlg.CreateDecryptor(aesAlg.Key, aesAlg.IV);
using (MemoryStream msDecrypt = new MemoryStream(encryptedText))
using (CryptoStream csDecrypt = new CryptoStream(msDecrypt, decryptor, CryptoStreamMode.Read))
using (StreamReader srDecrypt = new StreamReader(csDecrypt))
plainText = srDecrypt.ReadToEnd();