Jag försöker få fram en MD5-hash från en text (hash på en email-adress) men resultatet blir inte vad jag förväntar mig. Hur har du kommit fram till det rätta svaret? Alla online-konverterare jag testat säger att rätt svar är "ddf097499b3763483d3acf39246a740f". Det får jag fram om jag ändrar UnicodeEncoding till UTF8Encoding. Aha, jag borde ha testat med enbart små bokstäver eftersom jag inte heller fick rätt i online-konverterarna. Jag får be om ursäkt. Det gick ju mycket bättre om jag faktiskt läste hela ditt inlägg och inte bara testade en del av det du sa :-)MD5-hash
<code>
Dim Ue As New UnicodeEncoding()
Dim ByteSourceText() As Byte = Ue.GetBytes("texten som ska hashas")
Dim Md5 As New System.Security.Cryptography.MD5CryptoServiceProvider()
Dim ByteHash() As Byte = Md5.ComputeHash(ByteSourceText)
Dim strOutput As New System.Text.StringBuilder(ByteHash.Length)
For i As Integer = 0 To ByteHash.Length - 1
strOutput.Append(ByteHash(i).ToString("X2"))
Next
MD5Hash = strOutput.ToString().ToLower
</code>
Skickar man in "iHaveAn@email.com" så får man inte ut "3b3be63a4c2a439b013787725dfce802" som man borde få. Gör jag något fel?
/ThomasSv: MD5-hash
Sedan borde raden:
Dim strOutput As New System.Text.StringBuilder(ByteHash.Length)
ändras till:
Dim strOutput As New System.Text.StringBuilder(ByteHash.Length * 2)
Edit:
Ditt svar får man med UTFEncoding med gemener, det är alltså hashen för ihavean@email.com.
/JohanSv:MD5-hash
Men tyvärr hjälpte det inte på den kod jag använder, då blir "ihavean@email.com" konverterat till "79c00e78a3867ea54eae2f634879db9c".
/ThomasSv:MD5-hash
Får skylla på att jag var lite stressad. När jag bytte till UTF8 och la till *2 så fungerade det bra.
Tack!
/Thomas