public static string EncryptString(string str, string key)
{
// 文字列をバイト型配列にする
var bytesIn = System.Text.Encoding.UTF8.GetBytes(str);
// DESCryptoServiceProviderオブジェクトの作成
var des = new System.Security.Cryptography.DESCryptoServiceProvider();
// 共有キーと初期化ベクタを決定
// パスワードをバイト配列にする
var bytesKey = System.Text.Encoding.UTF8.GetBytes(key);
// 共有キーと初期化ベクタを設定
des.Key = ResizeBytesArray(bytesKey, des.Key.Length);
des.IV = ResizeBytesArray(bytesKey, des.IV.Length);
// 暗号化されたデータを書き出すためのMemoryStream
var msOut = new System.IO.MemoryStream();
// DES暗号化オブジェクトの作成
var desdecrypt = des.CreateEncryptor();
// 書き込むためのCryptoStreamの作成
var cryptStreem = new System.Security.Cryptography.CryptoStream(msOut, desdecrypt, System.Security.Cryptography.CryptoStreamMode.Write);
// 書き込む
cryptStreem.Write(bytesIn, 0, bytesIn.Length);
cryptStreem.FlushFinalBlock();
// 暗号化されたデータを取得
byte[] bytesOut = msOut.ToArray();
// 閉じる
cryptStreem.Close();
msOut.Close();
// Base64で文字列に変更して結果を返す
return System.Convert.ToBase64String(bytesOut);
}