Ver Mensaje Individual
  #1 (permalink)  
Antiguo 17/10/2005, 04:11
Avatar de Bravenap
Bravenap
 
Fecha de Ingreso: noviembre-2002
Ubicación: Los Arroyos, El Escorial, Madrid
Mensajes: 2.084
Antigüedad: 21 años, 6 meses
Puntos: 4
Clase para cifrar en SHA1

Hola a todos. Estoy intentando crear una bibliteca de clases para poder utilizarla luego en ASP 3.0. Se trata de un componente que me permita cifrar en SHA1, ya que con ASP 3 no se puede, al menos que yo sepa.

Pues bien, creo un nuevo proyecto de Biblioteca de clases llamado "Cifrados". Añado una nueva clase y escribo el siguiente código:

Código:
Imports System.Security.Cryptography

Public Class CifSha1

    Public Function Cifrar(ByVal Cadena As String) As String

        Dim CadenaEnBytes As Byte()
        Dim HashEnBytes As Byte() 'Resultado en Bytes
        Dim HashCadena As String 'Resultado de HASH

        Dim Sha1 As New SHA1CryptoServiceProvider
        CadenaEnBytes = System.Text.Encoding.ASCII.GetBytes(Cadena)
        HashEnBytes = Sha1.ComputeHash(CadenaEnBytes)
        HashCadena = System.Text.Encoding.ASCII.GetString(HashEnBytes)

        Return "SHA1: " & HashCadena

    End Function


End Class
Lo compilo y en un proyecto web ASP.Net lo pruebo de la siguiente manera. Agrego la referencia a Cifrados.dll y escribo lo siguiente:

Código:
Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

        Dim sha1 As New Cifrados.CifSha1
        Response.Write(sha1.Cifrar("contraseñaParaSerCifrada"))

    End Sub
El resultado de la página es:

Código:
SHA1: (VHrs??h?u? ????w?
Lo que no coincide con el cifrado, que debería ser:

Código:
SHA1: 47914D69E0FC735EDC76155944F1360167FB82C2
Supongo que será problema de la codificación, pero he probado con ASCII, UTF8, UTF7 y Default obteniendo cosas distintas pero nunca la correcta.

Un saludo.
__________________
¡¡NO A LA GUERRA!!
Si ponemos a nuestros mensajes títulos adecuados, la gente se animará más a abrirlos y resultarán más útiles en las busquedas. ¡No a los ayuuudaaa, urgenteee y similares!