C sharp - Consulta sobre Hash

 
Vista:
sin imagen de perfil

Consulta sobre Hash

Publicado por Cristian Saavedra (13 intervenciones) el 09/01/2014 19:40:17
Buenas:

Tengo el siguiente dilema con una logica que no he podido aun dar con ella y por mas que la busco ams me resigno.
Bueno el tema es que mediante mi aplicacion de escritorio en el sistema de login ingreso mi usuario y contraseña, pero esa contraseña se va a validar a la base de datos con una contraseña encriptada HASH entonces aun no logro como compararla con la que esta en la bd o si es que se puede o alguien lo ha logrado de alguna manera para que me comente y me aydue a resolver mi problema.

Cualquier idea sera de gran ayuda.

Saludos
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil

Consulta sobre Hash

Publicado por Olintonatiuh (6 intervenciones) el 10/01/2014 05:56:57
Puedes intentar usar blob de la bdd
puedes encriptar e insertar los bits en un blob
despues obtener los bits y desncriptar y realizar la compracion

o tambien intentar usar este codigo que implemente en mono hace tiempo te debuelve una string encriptada
que puedes desencriptar
using System;
using System.Text;
using System.Security.Cryptography;

namespace Codificar
{
public class encrypt
{
private static TripleDESCryptoServiceProvider tripleDES = null;

private static void InitKey () {
try {
if (tripleDES == null) {
// Definimos la clave. Debe ser la misma para codificar y decodificar
// Se puede poner tantos caracteres como se deseen
string key = "dfs34tv568ynx349823'xm21*ÑÑ0ui9yu89h4x3lh34qiuhxr2983zn74yrt9348yn6t805976n'834qx7nuhx34gqbr72367!·$%&/()=?¿";

// Crea una instancia del objeto MD5CryptoServiceProvider
MD5CryptoServiceProvider hashMD5 = new MD5CryptoServiceProvider();

// Convierte el string key en codificacion UFT8 y genera el array de bytes hash de este
byte[] byteKey = hashMD5.ComputeHash(UTF8Encoding.UTF8.GetBytes(key));

hashMD5.Clear();

// Crea e inicializa una instancia del objeto TripleDESCryptoServiceProvider
tripleDES = new TripleDESCryptoServiceProvider();
tripleDES.Key = byteKey;
tripleDES.Mode = CipherMode.ECB;
tripleDES.Padding = PaddingMode.PKCS7;
}
}
catch (Exception e) {
Console.WriteLine(e.Message);
}
}
///////////////////////////////////////
///
public static string Codificar(string txtIn) {
InitKey ();
try {
// Convierte el string en codificacion UFT8 y genera el array de bytes de este
byte[] byteIn_UTF8 = UTF8Encoding.UTF8.GetBytes(txtIn);

// Transforma la región especificada de la matriz de bytes indicada
byte[] byteOut = tripleDES.CreateEncryptor().TransformFinalBlock(byteIn_UTF8,0, byteIn_UTF8.Length);

return Convert.ToBase64String(byteOut,0, byteOut.Length);
}
catch (Exception e) {
Console.WriteLine(e.Message);
return null;
}
}
///////////////////////////////////
///
public static string Decodificar(string txtIn) {
InitKey ();
try {
// Convierte el string en codificacion UFT8 y genera el array de bytes de este
byte[] byteIn_UTF8 = Convert.FromBase64String(txtIn);

// Transforma la región especificada de la matriz de bytes indicada
byte[] byteOut = tripleDES.CreateDecryptor().TransformFinalBlock(byteIn_UTF8,0, byteIn_UTF8.Length);

return UTF8Encoding.UTF8.GetString(byteOut);
}
catch (Exception e) {
Console.WriteLine(e.Message);
return null;
}
}

}
}
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar