Buenas, me presento, soy Solid Snake, si el mismo de Metal Gear Solid, me fuerzan a colaborar con simplesmortales algunas tonterias que tengo en la laptop estos desgraciados de Philanthropy…
Aqui les presento un wrapper que estoy usando para encapsular metodos de criptografia que utilizo para encriptar passwords de paginas web simples, solo usa los metodos para guardar la contraseña en tu DBMS, luego cuando se ingresa haz que tu form de login tome lo que ingrese, encriptas de la misma manera y comparas, eso no falla. Sin mas el código:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 | Imports System Imports System.Security.Cryptography Imports System.Text ' Clase que engloba metodos de criptografia para guardar tus passwords :P ' Puedes implementar tus metodos de criptografia y extender tu clase a gusto :) Public Class Cryptografia ' Encripta una cadena de texto usando el algoritmo de encriptacion de hash MD5. ' el "Message Digest" es una encriptacion de 128-bit y es usado comunmente para ' verificar datos chequeando el "Checksum MD5", mas informacion se puede ' encontrar en: http://www.faqs.org/rfcs/rfc1321.html ' ' cadena conteniendo el string a hashear a MD5. ' Una cadena de texto conteniendo en forma encriptada la cadena ingresada. Public Shared Function MD5Hash(ByVal Data As String) As String Dim md5 As MD5 = New MD5CryptoServiceProvider() Dim hash As Byte() = md5.ComputeHash(Encoding.UTF8.GetBytes(Data)) Dim stringBuilder As New StringBuilder() For Each b As Byte In hash stringBuilder.AppendFormat("{0:x2}", b) Next Return stringBuilder.ToString() End Function ' Encripta una cadena utilizando el algoritmo SHA256 (Secure Hash Algorithm) ' Detalles: http://www.itl.nist.gov/fipspubs/fip180-1.htm ' Esto trabaja de misma manera que el MD5, solo que utilizando una ' encriptacion en 256 bits. ' Un string conteniendo los datos a encriptar. ' Un string conteniendo al string de entrada, encriptado con el algoritmo SHA256. Public Shared Function SHA256Hash(ByVal Data As String) As String Dim sha As SHA256 = New SHA256Managed() Dim hash As Byte() = sha.ComputeHash(Encoding.UTF8.GetBytes(Data)) Dim stringBuilder As New StringBuilder() For Each b As Byte In hash stringBuilder.AppendFormat("{0:x2}", b) Next Return stringBuilder.ToString() End Function ' Encripta una cadena utilizando el algoritmo SHA256 (Secure Hash Algorithm) ' Detalles: http://www.itl.nist.gov/fipspubs/fip180-1.htm ' Esto trabaja de misma manera que el MD5, solo que utilizando una ' encriptacion en 256bits. ' Un string conteniendo los datos a encriptar. ' Un string conteniendo al string de entrada, encriptado con el algoritmo SHA384. Public Shared Function SHA384Hash(ByVal Data As String) As String Dim sha As SHA384 = New SHA384Managed() Dim hash As Byte() = sha.ComputeHash(Encoding.UTF8.GetBytes(Data)) Dim stringBuilder As New StringBuilder() For Each b As Byte In hash stringBuilder.AppendFormat("{0:x2}", b) Next Return stringBuilder.ToString() End Function ' Encripta una cadena utilizando el algoritmo SHA256 (Secure Hash Algorithm) ' Detalles: http://www.itl.nist.gov/fipspubs/fip180-1.htm ' Esto trabaja de misma manera que el MD5, solo que utilizando una ' encriptacion en 512 bits. ' Un string conteniendo los datos a encriptar. ' Un string conteniendo al string de entrada, encriptado con el algoritmo SHA512. Public Shared Function SHA512Hash(ByVal Data As String) As String Dim sha As SHA512 = New SHA512Managed() Dim hash As Byte() = sha.ComputeHash(Encoding.UTF8.GetBytes(Data)) Dim stringBuilder As New StringBuilder() For Each b As Byte In hash stringBuilder.AppendFormat("{0:x2}", b) Next Return stringBuilder.ToString() End Function End Class |
Nota: Cabe recordar que todos estos algoritmos de encriptado solo obtienen un hash del string original, y no es reversible. Por lo tanto si lo que buscas es luego desencriptar esto debes utilizar otros algoritmos, por ello también hace que éstos sean más seguros al no poder hacer el reverso








en
en
en
en
Excelente aporte, gracias por compartir, será de gran utilidad
Gracias GeekZero por la correcion y la Nota
No pude seguir editando porque ya me llevaron a tomar cerveza, juajaujajuajua
Super! ahi esta con mas facha ya.. en el modo HTML se usan los tags para pintar el codigo
Por ahi tenia uno en C# con Rijndael, uno de estos dias lo subo