C#で、DES暗号化

C#で、DES暗号化と復号のサンプルです。
コンソールアプリで、第1引数で入力したテキストを暗号化します。8バイト以上のテキストファイルも暗号化と復号ができます(CBC)。入力データはテキストファイルでもソケットでも応用が利きます。

using System;
using System.Text;
using System.Security.Cryptography;

class Program
{

    //暗号化関数
    static byte[] EncryptText(string str, byte[] Key)
    {
        DESCryptoServiceProvider des = new DESCryptoServiceProvider();

        des.Key = Key;
        des.IV = Key;

        byte[] bstr = Encoding.UTF8.GetBytes(str);

        ICryptoTransform transform = des.CreateEncryptor();
        byte[] encrypted = transform.TransformFinalBlock(bstr, 0, bstr.Length);

        transform.Dispose();
        return encrypted;
    }

    //復号関数
    static byte[] DecryptText(byte[] bcrypt, byte[] Key)
    {
        DESCryptoServiceProvider des = new DESCryptoServiceProvider();

        des.Key = Key;
        des.IV = Key;

        ICryptoTransform destransform = des.CreateDecryptor();
        byte[] decrypted = destransform.TransformFinalBlock(bcrypt, 0, bcrypt.Length);

        destransform.Dispose();
        return decrypted;

    }

    static void Main(string[] args)
    {
        //8バイトのキーを指定
        byte[] secretKey = Encoding.UTF8.GetBytes("secretky");

        //引数で指定したテキストを暗号化
        Console.WriteLine("「{0}」を暗号化します。",args[0]);
        byte[] encryptdata = EncryptText(args[0], secretKey);

        //復号
        byte[] decryptdata = DecryptText(encryptdata, secretKey);
        Console.WriteLine("「{0}」を復号しました。", Encoding.UTF8.GetString(decryptdata));
    }

}