Encryption and decryption of C# DES

Recommended for you: Get network issues from WhatsUp Gold. Not end users.

/// <summary>

/// DES encryption

/// </summary>

/// <param name="pToEncrypt"></param>

/// <param name="sKey"></param>

/// <returns></returns>

public static string DESEncrypt(string pToEncrypt, string sKey)

{

if (sKey == string.Empty)

sKey = "pccweb12".PadLeft(8, 'X');

DESCryptoServiceProvider des = new DESCryptoServiceProvider();

byte[] inputByteArray = Encoding.Default.GetBytes(pToEncrypt);

des.Key = ASCIIEncoding.ASCII.GetBytes(sKey);

des.IV = ASCIIEncoding.ASCII.GetBytes(sKey);

MemoryStream ms = new MemoryStream();

CryptoStream cs = new CryptoStream(ms, des.CreateEncryptor(), CryptoStreamMode.Write);

cs.Write(inputByteArray, 0, inputByteArray.Length);

cs.FlushFinalBlock();

StringBuilder ret = new StringBuilder();

foreach (byte b in ms.ToArray())

{

ret.AppendFormat("{0:X2}", b);

}

ret.ToString();

return ret.ToString();

}

/// <summary>

/// DES decryption

/// </summary>

/// <param name="pToDecrypt"></param>

/// <param name="sKey"></param>

/// <returns></returns>

public static string DESDecrypt(string pToDecrypt, string sKey)

{

if (sKey == string.Empty)

sKey = "pccweb12".PadLeft(8, 'X');

DESCryptoServiceProvider des = new DESCryptoServiceProvider();

byte[] inputByteArray = new byte[pToDecrypt.Length / 2];

for (int x = 0; x <pToDecrypt.Length / 2; x++)

{

int i = (Convert.ToInt32(pToDecrypt.Substring(x * 2, 2), 16));

inputByteArray[x] = (byte)i;

}

des.Key = ASCIIEncoding.ASCII.GetBytes(sKey);

des.IV = ASCIIEncoding.ASCII.GetBytes(sKey);

MemoryStream ms = new MemoryStream();

CryptoStream cs = new CryptoStream(ms, des.CreateDecryptor(), CryptoStreamMode.Write);

cs.Write(inputByteArray, 0, inputByteArray.Length);

cs.FlushFinalBlock();

StringBuilder ret = new StringBuilder();

return System.Text.Encoding.Default.GetString(ms.ToArray());

}

Recommended from our users: Dynamic Network Monitoring from WhatsUp Gold from IPSwitch. Free Download

Posted by Vito at November 18, 2013 - 8:58 PM