Al igual que con MD5, .NET nos ofrece la posibilidad de obtener el valor SHA256 de una manera muy sencilla. Tan sólo debemos usar el siguiente código
public string SHA256Encrypt(string input) { SHA256CryptoServiceProvider provider = new SHA256CryptoServiceProvider(); byte[] inputBytes = Encoding.UTF8.GetBytes(input); byte[] hashedBytes = provider.ComputeHash(inputBytes); StringBuilder output = new StringBuilder(); for (int i = 0; i < hashedBytes.Length; i++) output.Append(hashedBytes[i].ToString("x2").ToLower()); return output.ToString(); }También hay que tener en cuenta que debemos importar el espacio de nombres System.Security.Cryptography.
using System.Security.Cryptography;
Algunos ejemplos
SHA256('') = 4574890e042bd574ae8d75562fe5bca34e7e5b518d9bbe2a7d5b39d1f6ed63c1 SHA256('SHA256') = b3abe5d8c69b38733ad57ea75e83bcae42bbbbac75e3a5445862ed2f8a2cd677
Nota: En este algoritmo he usado la clase StringBuilder para concatenar el resultado. En el caso del algoritmo MD5 este cambio refleja una mejoría de unos 100ms en caso que calculemos el hash 250.000 veces. Este mejoría es despreciable en caso que queramos calcular el hash para un solo registro. En caso del algoritmo SHA256 casi no presenta una mejoría ya que el porcentaje de tiempo concatenando la cadena es realmente despreciable comparado con el tiempo que lleva el calculo del hash.
Happy coding!
No hay comentarios:
Publicar un comentario