using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Security.Cryptography;
using System.IO;
namespace strPractices
{
class Program
{
static string encryptKey = "email_address";
//encrypt way
static string Encrypt(string str)
{
encryptKey = encryptKey.Remove(4);//32 bit
DESCryptoServiceProvider descsp = new DESCryptoServiceProvider();
byte[] key = Encoding.Unicode.GetBytes(encryptKey);
byte[] data = Encoding.Unicode.GetBytes(str);
MemoryStream memoryStream = new MemoryStream();
CryptoStream copyStream = new CryptoStream(memoryStream, descsp.CreateEncryptor(key, key), CryptoStreamMode.Write);
copyStream.Write(data, 0, data.Length);
copyStream.FlushFinalBlock();
return Convert.ToBase64String(memoryStream.ToArray());
}
//decrypt way
static string Decrypt(string str)
{
DESCryptoServiceProvider descsp = new DESCryptoServiceProvider();
byte[] key = Encoding.Unicode.GetBytes(encryptKey);
byte[] data = Convert.FromBase64String(str);
MemoryStream memoryStream = new MemoryStream();
CryptoStream copyStream = new CryptoStream(memoryStream, descsp.CreateDecryptor(key, key), CryptoStreamMode.Write);
copyStream.Write(data, 0, data.Length);
copyStream.FlushFinalBlock();
return Encoding.Unicode.GetString(memoryStream.ToArray());
}
static void Main(string[] args)
{
//test code
Console.WriteLine("Please input encrypted string: ");
Console.WriteLine();
string strOldString = Console.ReadLine();
string strNewString = Encrypt(strOldString);
Console.WriteLine("Encrypted string: " + strNewString);
Console.WriteLine("Decrypted string: " + Decrypt(strNewString));
Console.ReadKey();
}
}
}