Podemos desencriptar cualquier cadena de texto con C# en base a una key de encriptación. El siguiente código espera un parámetro texto del que queremos desencriptar, la key secreta de encriptación, y el CyphMode).
Podemos desencriptar cualquier cadena de texto con C# en base a una key de encriptación. El siguiente código espera un parámetro texto del que queremos desencriptar, la key secreta de encriptación, y el CyphMode).
La función devolverá el valor desencriptado. Nos puede venir bien si queremos desencriptar id's de valores, por ejemplo...
Espero que lo disfruten, compartan y comenten. ;)
Podemos desencriptar cualquier cadena de texto con C# en base a una key de encriptación. El siguiente código espera un parámetro texto del que queremos desencriptar, la key secreta de encriptación, y el CyphMode).
La función devolverá el valor desencriptado. Nos puede venir bien si queremos desencriptar id's de valores, por ejemplo...
public static string Decrypt(string p_InputString, string p_SecretKey, CipherMode p_CyphMode)
{
if (String.IsNullOrEmpty(p_InputString)) {
return String.Empty;
} else {
StringBuilder ret = new StringBuilder();
byte[] InputbyteArray = new byte[Convert.ToInt32(p_InputString.Length) / 2];
TripleDESCryptoServiceProvider Des = new TripleDESCryptoServiceProvider();
MD5CryptoServiceProvider hashMD5 = new MD5CryptoServiceProvider();
try {
Des.Key = hashMD5.ComputeHash(ASCIIEncoding.ASCII.GetBytes(p_SecretKey));
Des.Mode = p_CyphMode;
for (int X = 0; X <;= InputbyteArray.Length - 1; X++) {
Int32 IJ = (Convert.ToInt32(p_InputString.Substring(X * 2, 2), 16));
ByteConverter BT = new ByteConverter();
InputbyteArray[X] = new byte();
InputbyteArray[X] = Convert.ToByte(BT.ConvertTo(IJ, typeof(byte)));
}
MemoryStream ms = new MemoryStream();
CryptoStream cs = new CryptoStream(ms, Des.CreateDecryptor(), CryptoStreamMode.Write);
//Flush the data through the crypto stream into the memory stream
cs.Write(InputbyteArray, 0, InputbyteArray.Length);
cs.FlushFinalBlock();
//Get the decrypted data back from the memory stream
byte[] B = ms.ToArray();
ms.Close();
for (int I = 0; I <;= B.GetUpperBound(0); I++) {
ret.Append(Convert.ToChar(B[I]));
}
} catch (Exception ex) {
// ME.Publish("SF.Utils.Utils", "DecryptString", ex, ManageException_Enumerators.ErrorLevel.FatalError);
return String.Empty;
}
return ret.ToString();
}
}
Espero que lo disfruten, compartan y comenten. ;)
"Si se puede imaginar... se puede programar."
Comentarios
Publicar un comentario