AES-DotNet

Run Settings
LanguageC#
Language Version
Run Command
using System; using System.Security.Cryptography; class MainClass { private static string my_encrypt(string mytext, string key, string iv) { byte[] bkey = System.Text.Encoding.UTF8.GetBytes(key); byte[] biv = System.Text.Encoding.UTF8.GetBytes(iv); byte[] toEncrypt = System.Text.Encoding.UTF8.GetBytes(mytext); byte[] cipherBytes = null; //Possible algorithmName values are: "AES", "AesCryptoServiceProvider", "System.Security.Cryptography.AesCryptoServiceProvider", "AesManaged", and "System.Security.Cryptography.AesManaged". using (Aes aesAlg = Aes.Create()) { aesAlg.Mode = CipherMode.CBC; aesAlg.KeySize = 256; aesAlg.BlockSize = 128; aesAlg.Key = bkey; aesAlg.IV = biv; using (System.Security.Cryptography.ICryptoTransform transform = aesAlg.CreateEncryptor()) { using (var mStream = new System.IO.MemoryStream()) { using (var cStream = new CryptoStream(mStream, transform, CryptoStreamMode.Write)) { cStream.Write(toEncrypt, 0, toEncrypt.Length); cStream.FlushFinalBlock(); cipherBytes = mStream.ToArray(); } } } } return Convert.ToBase64String(cipherBytes); } private static string my_decrypt(string mytext, string key, string iv) { //decrypt byte[] bkey = System.Text.Encoding.UTF8.GetBytes(key); byte[] biv = System.Text.Encoding.UTF8.GetBytes(iv); byte[] toDecrypt = Convert.FromBase64String(mytext); string decryptedString = null; //Possible algorithmName values are: "AES", "AesCryptoServiceProvider", "System.Security.Cryptography.AesCryptoServiceProvider", "AesManaged", and "System.Security.Cryptography.AesManaged". using (Aes aesAlg = Aes.Create()) { aesAlg.Mode = CipherMode.CBC; aesAlg.KeySize = 256; aesAlg.BlockSize = 128; aesAlg.Key = bkey; aesAlg.IV = biv; using (System.Security.Cryptography.ICryptoTransform transform2 = aesAlg.CreateDecryptor()) // <-- difference here { using (var mStream2 = new System.IO.MemoryStream()) { using (var cStream2 = new CryptoStream(mStream2, transform2, CryptoStreamMode.Write)) { cStream2.Write(toDecrypt, 0, toDecrypt.Length); cStream2.FlushFinalBlock(); decryptedString = System.Text.Encoding.Default.GetString(mStream2.ToArray()); } } } } return decryptedString; } static void Main() { Console.WriteLine("AES 256"); string toEncryptString = "testtesttesttesttest"; string key = "j80o0nywcn0yeapjk0qzh2dw0zw6u0f0"; //must be 32bytes string iv = "7608kuwtoi436by1"; //must be 16bytes Console.WriteLine( "text: " + toEncryptString); Console.WriteLine( "key: " + key); Console.WriteLine( "iv: " + iv); string enc = my_encrypt(toEncryptString, key, iv); Console.WriteLine( "encrypted: " + enc); Console.WriteLine( "binary encrypted: " + BitConverter.ToString(Convert.FromBase64String(enc))); string decr = my_decrypt(enc, key, iv); Console.WriteLine( "decrypted: " + decr); Console.WriteLine( "binary decrypted: " + BitConverter.ToString(System.Text.Encoding.Default.GetBytes(decr))); } }
Editor Settings
Theme
Key bindings
Full width
Lines