• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

Weasel

[VB.NET 2005] MD5 HASH

3 mensagens neste tópico

Boas, eu estou aqui a converter umas aplicações que eu tinha feito em php para VB.NET...

Agora deparei-me com um problema, no PHP temos o comando md5() que dá-nos a hash md5 do texto que for dado, por exemplo md5(teste); dá-nos a Hash da palavra teste, mas em VB.NET como posso criar uma hash em md5 ?

Já procurei pelo google mas as várias "functions" apresentadas dá um valor totalmente diferente da MD5 criada pelo php, não é suposto uma Hash MD5 ser igual seja em que plataforma seja criada ?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Bem, resolvi usando a função dada pelo ht

aqui: http://www.portugal-a-programar.pt/forums/topic/0-find-topic/?do=findComment&comment=99080

Public Function MD5_Hash(ByVal SourceText As String) As String
        Try
            Dim MD5 As New System.Security.Cryptography.MD5CryptoServiceProvider
            Dim rawBytes As Byte() = System.Text.ASCIIEncoding.ASCII.GetBytes(SourceText)
            Dim myHash As Byte() = md5.ComputeHash(rawBytes)
            Dim Capacity As Integer = (myHash.Length * 2 + (myHash.Length / 8))
            Dim result As New System.Text.StringBuilder(Capacity)
            Dim i As Integer
            For i = 0 To myHash.Length - 1
                result.Append(BitConverter.ToString(myHash, i, 1))
            Next i
            Return result.ToString().TrimEnd(New Char() {" "c}).ToLower
        Catch ex As Exception
            Return "0"
        End Try
    End Function

Mas não a percebi muito bem :dontgetit:

Se alguém a quiser explicar..  :)

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Dim resultado as Byte() = MD5.Create().ComputeHash(Encoding.Default.GetBytes("tuaString"))

Acho que desta maneira mais simples.

Basicamente pegas numa String ("tuaString") e convertes para bytes. Calculas a Hash (por MD5) e obtens os bytes.

Agora com esses bytes podes fazer o que quizeres. Se quizeres converter para String podes fazer com algo do genero.

Dim sb As New StringBuilder()
Dim i As Integer
For i = 0 To resultado.Length - 1
     sb.Append(resultado(i).ToString("x2"))
Next i

Dim stringFinal as String = sb.ToString()

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora