Foros del Web » Programación para mayores de 30 ;) » .NET »

Encriptación y Desecriptación

Estas en el tema de Encriptación y Desecriptación en el foro de .NET en Foros del Web. Hola a todos los del foro . Investigando por la red consultando temas acerca de Encriptación y Desecriptación, y o sorpresa, me encontre varios ejemplos ...
  #1 (permalink)  
Antiguo 21/09/2010, 12:21
Avatar de optimus100  
Fecha de Ingreso: febrero-2009
Mensajes: 45
Antigüedad: 15 años, 2 meses
Puntos: 0
Pregunta Encriptación y Desecriptación

Hola a todos los del foro . Investigando por la red consultando temas acerca de Encriptación y Desecriptación, y o sorpresa, me encontre varios ejemplos tanto en php como para visual basic pero yo necesito uno para c# . De todos los que consulte decidi convertir el código de visual basic a c#, pero el problema que encontre con este tipo de ejemplos, es que no me permite encriptar caracteres especiales como por ejemplo acentos, la letra ñ (que bonito el español ) entre otros #$%&/(

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 "";
			}
		
		}
	}
  #2 (permalink)  
Antiguo 22/09/2010, 10:07
Avatar de Malenko
Moderador
 
Fecha de Ingreso: enero-2008
Mensajes: 5.323
Antigüedad: 16 años, 3 meses
Puntos: 606
Respuesta: Encriptación y Desecriptación

Has probado con las funciones que trae de serie .net?

http://msdn.microsoft.com/en-us/libr...ptography.aspx
__________________
Aviso: No se resuelven dudas por MP!
  #3 (permalink)  
Antiguo 23/09/2010, 15:34
Avatar de optimus100  
Fecha de Ingreso: febrero-2009
Mensajes: 45
Antigüedad: 15 años, 2 meses
Puntos: 0
Respuesta: Encriptación y Desecriptación

Muchas gracias por tu ayuda, ya logue lo que queria. ahora si ya me reconoce los caracteres especiales

Etiquetas: Ninguno
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 06:36.