Ver Mensaje Individual
  #1 (permalink)  
Antiguo 22/04/2016, 18:23
antvo
 
Fecha de Ingreso: junio-2012
Mensajes: 233
Antigüedad: 11 años, 10 meses
Puntos: 3
Pregunta Encriptacion C# y SQL iguales

Buen día,

Tengo una aplicación en C# con pantalla de usuarios donde encripto el campo pasword con MD5CryptoServiceProvider y en sql veo el dato en md5 , lo que no se es utilizar sql para que pueda desencriptar esa información con la clave que estoy usando en c# . Los ejemplos que e encontrado de sql para hacerlo son de sql 2005 y cuando los aplico no me da el resultado. Agradezco sus respuestas.

Es decir quiero que el método de encriptacion junto con la clave pueda utilizarla en sql ya que quiero encriptar otros campos pero desde sql ya que en este momento son tablas con mas de 200 registros le quiero hacer un update a las columnas de nombres y saldos pero quiero que me quede ya encriptado como lo estoy aplicando en c#.

A continuacion les muestro como encrypto en C#:


Código C#:
Ver original
  1. public static string EncriptarPassword(string password)
  2.         {
  3.             byte[] llaveArray;
  4.             byte[] passwordArray = UTF8Encoding.UTF8.GetBytes(password);
  5.  
  6.             MD5CryptoServiceProvider algotimoMD5 = new MD5CryptoServiceProvider();
  7.             llaveArray = algotimoMD5.ComputeHash(
  8.             UTF8Encoding.UTF8.GetBytes(LlavePassword()));
  9.             algotimoMD5.Clear();
  10.  
  11.             TripleDESCryptoServiceProvider tripleDES = new TripleDESCryptoServiceProvider();
  12.  
  13.             tripleDES.Key = llaveArray;
  14.             tripleDES.Mode = CipherMode.ECB;
  15.             tripleDES.Padding = PaddingMode.PKCS7;
  16.  
  17.             ICryptoTransform passTransform = tripleDES.CreateEncryptor();
  18.  
  19.             byte[] arrayEncriptado = passTransform.TransformFinalBlock(passwordArray, 0, passwordArray.Length);
  20.  
  21.             tripleDES.Clear();
  22.  
  23.             return Convert.ToBase64String(arrayEncriptado, 0, arrayEncriptado.Length);
  24.         }

Última edición por antvo; 22/04/2016 a las 18:24 Razón: Afinación de detalles