using System.Security.Cryptography;
public static void Main()
byte[] key = Encoding.ASCII.GetBytes("MYCRYKEY");
byte[] src = Encoding.ASCII.GetBytes("123456789~~~~~~~");
using DES des = DES.Create();
des.Mode = CipherMode.CBC;
des.Padding = PaddingMode.None;
using ICryptoTransform crypt = des.CreateEncryptor();
byte[] encrypted = crypt.TransformFinalBlock(src, 0, src.Length);
Assert.That(ToHex(key), Is.EqualTo("4D594352594B4559"));
Assert.That(ToHex(src), Is.EqualTo("3132333435363738397E7E7E7E7E7E7E"));
Assert.That(ToHex(encrypted), Is.EqualTo("F2E238B83939CBC1C33331A198463076"));
using DES des2 = DES.Create();
des2.Mode = CipherMode.CBC;
des2.Padding = PaddingMode.None;
using ICryptoTransform crypt2 = des2.CreateDecryptor();
byte[] src2 = Convert.FromHexString("F2E238B83939CBC1C33331A198463076");
byte[] decrypted = crypt2.TransformFinalBlock(src2, 0, src2.Length);
Assert.That(ToHex(decrypted), Is.EqualTo(ToHex(src)));
Console.WriteLine("Done...");
static string ToHex(byte[] bytes)
return BitConverter.ToString(bytes).Replace("-", "");