Encrypt and decrypt data in .NET (C# code example)

Posted by Max | Posted in programming | Posted on 09-08-2009

0

These two methods encrypt and decrypt byte array with given key value using DES encryption.


public static class Encryptor
    {
        public static byte[] Encrypt(byte[] data, string key) {
            var stream = new MemoryStream();
            var cryptic = new DESCryptoServiceProvider {
                Key = Encoding.ASCII.GetBytes(key),
                IV = Encoding.ASCII.GetBytes(key)
            };
            var crStream = new CryptoStream(stream,
                cryptic.CreateEncryptor(),
                CryptoStreamMode.Write
            );

            crStream.Write(data, 0, data.Length);
            crStream.FlushFinalBlock();
            return stream.ToArray();
        }

        public static byte[] Decrypt(byte[] data, string key) {
            var stream = new MemoryStream();
            stream.Write(data, 0, data.Length);
            stream.Position = 0;
            var cryptic = new DESCryptoServiceProvider {
                Key = Encoding.ASCII.GetBytes(key),
                IV = Encoding.ASCII.GetBytes(key)
            };
            var crStream = new CryptoStream(stream,
                cryptic.CreateDecryptor(),
                CryptoStreamMode.Read
            );
            var plainTextBytes = new byte[data.Length];
            int decryptedByteCount = crStream.Read(plainTextBytes,
                0, plainTextBytes.Length);
            var result = new byte[decryptedByteCount];
            for (int i=0; i < decryptedByteCount; i++)
                result = plainTextBytes;
            return result;
        }
    }

Write a comment