using System.Collections.Generic;
using System.Security.Cryptography;
using System.Collections;
public static void Main()
string key = "5TZVRRJTOK6JUFFHCYATVY30";
string plaintext = "{\"EVENT\":\"CONN\",\"MERCHANT_OUTLET_ID\": \"333333333333333333333\",\"MERCHANT_ID\": \"123456789088888\",\"CLIENT_ID\": \"1111\"}";
string finalString = Encrypt(key, plaintext);
Console.WriteLine(finalString);
public static string Tmp(string key, string plaintext){
TripleDESCryptoServiceProvider desProvider = new TripleDESCryptoServiceProvider();
MD5CryptoServiceProvider md5Provider = new MD5CryptoServiceProvider();
desProvider.Key = md5Provider.ComputeHash(UnicodeEncoding.Unicode.GetBytes(key));
desProvider.Mode = CipherMode.ECB;
ICryptoTransform desEncrypt = desProvider.CreateEncryptor();
byte[] buffer = UnicodeEncoding.Unicode.GetBytes(plaintext);
byte[] tdesBytes = desEncrypt.TransformFinalBlock(buffer, 0, buffer.Length);
string finalString = Convert.ToBase64String(tdesBytes);
public static string Encrypt (string encryptionKey ,string textToEncrypt) {
TripleDESCryptoServiceProvider tdes = new TripleDESCryptoServiceProvider();
tdes.Key = Encoding.ASCII.GetBytes (encryptionKey);
tdes.IV = new byte []{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00};
byte [] tringBytes = Encoding.UTF8.GetBytes(textToEncrypt);
string st = Convert.ToBase64String(tdes.CreateEncryptor().TransformFinalBlock(tringBytes,0, tringBytes.Length));
byte [] toBytes = Encoding.ASCII.GetBytes(st);
string s = BitConverter.ToString( toBytes ).Replace("-","").ToLower();
Decrypt (encryptionKey,s);
public static string Decrypt (string encryptionKey ,string textToDecrypt) {
TripleDESCryptoServiceProvider des = new TripleDESCryptoServiceProvider();
des.Key = Encoding.ASCII.GetBytes(encryptionKey);
des.IV = new byte []{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00};
byte [] fromByte = StringToByteArray(textToDecrypt);
string st = Encoding.ASCII.GetString(fromByte);
byte [] stringBytes = Convert.FromBase64String(st);
return Encoding.ASCII.GetString(des.CreateDecryptor().TransformFinalBlock(stringBytes,0,stringBytes.Length));
public static byte [] StringToByteArray (string hex) {
return Enumerable.Range (0,hex.Length)
. Where (x => x % 2 == 0)
. Select (x => Convert . ToByte ( hex.Substring(x, 2), 16))