



Ya que si encripto este tipo de caracteres al tratar de desencriptar aparecen totalmente alterados, con otro tipo de codigo que no se que sea.
Si me podrian ayudar a encontrar una solución a mi problema se los agradecere mucho.
Este es el código que encontre para realizar dicha tarea:
Código:
public static string EncryptString(string InputString, string SecretKey) { try{ CipherMode CyphMode = CipherMode.ECB; TripleDESCryptoServiceProvider Des = new TripleDESCryptoServiceProvider(); Byte[] InputbyteArray = Encoding.UTF8.GetBytes(InputString); MD5CryptoServiceProvider hashMD5 = new MD5CryptoServiceProvider(); Des.Key = hashMD5.ComputeHash(ASCIIEncoding.ASCII.GetBytes(SecretKey)); Des.Mode = CyphMode; 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(); Byte[] b = ms.ToArray(); ms.Close(); //int bs = b.GetUpperBound(0); for(int i=0;i < b.Length ; i++) { //Formato hexadecimal ret.AppendFormat("{0:X2}",b[i]); } return ret.ToString(); } catch(Exception ex) { Console.Write(ex); return ""; } } public static string DecryptString(string InputString, string SecretKey) { try{ if(InputString.Equals(String.Empty)) return ""; else { CipherMode CyphMode = CipherMode.ECB; TripleDESCryptoServiceProvider Des = new TripleDESCryptoServiceProvider(); byte[] byteArray = new byte[InputString.Length / 2 ]; MD5CryptoServiceProvider hashMD5 = new MD5CryptoServiceProvider(); Des.Key = hashMD5.ComputeHash(ASCIIEncoding.ASCII.GetBytes(SecretKey)); Des.Mode = CyphMode; for(int i =0; i < byteArray.Length ; i++) { Int32 Ij = Convert.ToInt32(InputString.Substring(i*2,2),16); ByteConverter Bt = new ByteConverter(); byteArray[i] = new byte(); byteArray[i] = Convert.ToByte(Bt.ConvertTo(Ij,typeof(byte))); } MemoryStream ms = new MemoryStream(); CryptoStream cs = new CryptoStream(ms,Des.CreateDecryptor(),CryptoStreamMode.Write); cs.Write(byteArray,0,byteArray.Length); cs.FlushFinalBlock(); StringBuilder ret = new StringBuilder(); Byte[] b = ms.ToArray(); ms.Close(); for(int j = 0 ; j< b.Length ; j++){ ret.Append(Convert.ToChar(b[j])); } return ret.ToString(); } } catch(Exception ex) { Console.Write(ex); return ""; } } }