C#で3DES で暗号化・復号化してみました。
初期化ベクタとキーと2つ値が必要なのが分かりにくい所ですね。あとそれらのデータ型がなんなのかも。
using System.IO; using System.Security.Cryptography; using System.Text; namespace TEST.Common.Crypt { public class Crypt { // 鍵 // 128 ビットから 192 ビットのキー長を 64 ビット単位でサポート // つまり16バイトか24バイト // 1234567890123456 //private const string CKEY = "bPE7eIw0OZojj0XZ"; // 123456789012345678901234 private const string CKEY = "a7nH8sMrqDeNtiS99jyOzgpF"; // 初期化ベクタ(8バイト) // 12345678 private const string CVEC = "lumw7kVi"; // 暗号化 public static string Encrypt(string str) { // 暗号化する文字列を byte 配列に変換 byte[] src = Encoding.UTF8.GetBytes(str); // 暗号用のキー情報をセット byte[] desKey = Encoding.UTF8.GetBytes(CKEY); byte[] desIV = Encoding.UTF8.GetBytes(CVEC); // Tripe DES のサービス プロバイダを生成 TripleDESCryptoServiceProvider des = new TripleDESCryptoServiceProvider(); // 入出力用のストリームを生成 MemoryStream ms = new MemoryStream(); CryptoStream cs = new CryptoStream(ms, des.CreateEncryptor(desKey, desIV), CryptoStreamMode.Write); // ストリームに暗号化するデータを書き込む cs.Write(src, 0, src.Length); cs.Close(); // 暗号化されたデータを byte 配列で取得 byte[] cryptData = ms.ToArray(); ms.Close(); // Base64で文字列に変換 return System.Convert.ToBase64String(cryptData); } // 復号化 public static string Decrypt(string str) { // Base64から byte 配列に変換 byte[] src = System.Convert.FromBase64String(str); // 暗号用のキー情報をセット byte[] desKey = Encoding.UTF8.GetBytes(CKEY); byte[] desIV = Encoding.UTF8.GetBytes(CVEC); // Tripe DES のサービス プロバイダを生成 TripleDESCryptoServiceProvider des = new TripleDESCryptoServiceProvider(); // 入出力用のストリームを生成 MemoryStream ms = new MemoryStream(); CryptoStream cs = new CryptoStream(ms, des.CreateDecryptor(desKey, desIV), CryptoStreamMode.Write); // ストリームに復号化するデータを書き込む cs.Write(src, 0, src.Length); cs.Close(); // 復号化されたデータを byte 配列で取得 byte[] cryptData = ms.ToArray(); ms.Close(); // 文字列に変換 return Encoding.UTF8.GetString(cryptData); } } }