Ejemplo de código fuente que consiste en un método de C# y de Visual Basic.NET muy usado, para generar una contraseña con un hash SHA1 que podremos usar después para determinadas comprobaciones de veracidad de esa contraseña, o para guardarlas en una base de datos.
ÍNDICE
Descripción del ejemplo
Lo que hago es, que mediante una cajita de texto donde yo meto mi password, al hacer clic en el botón de hash SHA-1, convierto esa cadena introducida en su correspondiente hash y la muestro en la otra textbox.
Por supuesto importantísimo meterle al código estas librerías para C#:
using System.Text;
using System.Security.Cryptography;
Y así para VB.Net:
Imports System.Text
Imports System.Security.Cryptography
Código para C#
//Método para generar una clave con un hash SHA-1, a partir de una cadena dada
private string generarClaveSHA1(string cadena)
{
UTF8Encoding enc = new UTF8Encoding();
byte[] data = enc.GetBytes(cadena);
byte[] result;
SHA1CryptoServiceProvider sha = new SHA1CryptoServiceProvider();
result = sha.ComputeHash(data);
StringBuilder sb = new StringBuilder();
for (int i = 0; i < result.Length; i++)
{
// Convertimos los valores en hexadecimal
// cuando tiene una cifra hay que rellenarlo con cero
// para que siempre ocupen dos dígitos.
if (result[i] < 16)
{
sb.Append("0");
}
sb.Append(result[i].ToString("x"));
}
//Devolvemos la cadena con el hash en mayúsculas para que quede más chuli :)
return sb.ToString().ToUpper();
}
Código para VB.NET
' Método para generar una clave con un hash SHA-1, a partir de una cadena dada
Function generarClaveSHA1(ByVal cadena As String) As String
Dim enc As New UTF8Encoding
Dim data() As Byte = enc.GetBytes(cadena)
Dim result() As Byte
Dim sha As New SHA1CryptoServiceProvider
result = sha.ComputeHash(data)
Dim sb As New StringBuilder
Dim max As Int32 = result.Length
For i As Integer = 0 To max - 1
'Convertimos los valores en hexadecimal
'cuando tiene una cifra hay que rellenarlo con cero
'para que siempre ocupen dos dígitos.
If (result(i) < 16) Then
sb.Append("0")
End If
sb.Append(result(i).ToString("x"))
Next
'Devolvemos la cadena con el hash en mayúsculas para que quede más chuli :)
generarClaveSHA1 = sb.ToString().ToUpper()
End Function
Previsualización del ejemplo
Descargar ejemplo
Proyectos completos en C# y en VB.NET. Los proyectos han sido creados mediante Visual Studio 2012 para framework 4.5
Proyecto Completo #59 (C#) (2379 descargas) | Proyecto Completo #59 (VB.NET) (2407 descargas) |