using System.Security.Cryptography;
using System.Collections.Generic;
public static void Main() {
Console.WriteLine("Enter text that needs to be encrypted..");
var nextChallenge="BLME1234";
var hexString = string.Join("",nextChallenge.Select(c => String.Format("{0:X2}", Convert.ToInt32(c))));
Console.WriteLine(hexString);
Console.WriteLine("End");
static void Apply3DES(string raw) {
using(TripleDESCryptoServiceProvider tdes = new TripleDESCryptoServiceProvider()) {
byte[] encrypted = Encrypt(raw, tdes.Key, tdes.IV);
Console.WriteLine(Convert.ToBase64String(encrypted));
Console.WriteLine(System.Text.Encoding.UTF8.GetString(encrypted));
string decrypted = Decrypt(encrypted, tdes.Key, tdes.IV);
Console.WriteLine(decrypted);
} catch (Exception exp) {
Console.WriteLine(exp.Message);
static byte[] Encrypt(string plainText, byte[] Key, byte[] IV) {
using(TripleDESCryptoServiceProvider tdes = new TripleDESCryptoServiceProvider()) {
ICryptoTransform encryptor = tdes.CreateEncryptor(Key, IV);
using(MemoryStream ms = new MemoryStream()) {
using(CryptoStream cs = new CryptoStream(ms, encryptor, CryptoStreamMode.Write)) {
using(StreamWriter sw = new StreamWriter(cs))
encrypted = ms.ToArray();
static string Decrypt(byte[] cipherText, byte[] Key, byte[] IV) {
using(TripleDESCryptoServiceProvider tdes = new TripleDESCryptoServiceProvider()) {
ICryptoTransform decryptor = tdes.CreateDecryptor(Key, IV);
using(MemoryStream ms = new MemoryStream(cipherText)) {
using(CryptoStream cs = new CryptoStream(ms, decryptor, CryptoStreamMode.Read)) {
using(StreamReader reader = new StreamReader(cs))
plaintext = reader.ReadToEnd();