Avatar billede torotune Nybegynder
12. oktober 2006 - 18:54 Der er 8 kommentarer og
2 løsninger

MD5 byte array til string

Hej,

Hvordan kan man få en streng der er encrypted med MD5 i et byte array til at antage streng-værdien f.eks.

9e107d9d372bb6826bd81d3542a419d6

Frem for at løbe array'et igennem og udskrive hver af de 16 værdier?
Avatar billede arne_v Ekspert
12. oktober 2006 - 18:57 #1
I use a for loop to hexify MD5's.

Of you choose base64 instead of hex, then the Convert class has two nice methods.
Avatar billede torotune Nybegynder
12. oktober 2006 - 19:34 #2
Hej, jeg er ikke helt sikker på jeg forstår. Hvis jeg laver en for loop og løber Arrayet igennem:

  Dim b as Byte
      For Each b in hashedDataBytes
        ltlResults.Text &= "<li>" & b & "</li>"
      Next b

Får jeg f.eks.

69
196
140
206
46
45
127
189
234
26
252
81
199
198
173
38

Men hvordan kan det blive til eks. 9e107d9d372bb6826bd81d3542a419d6

Kan du give et lille eksempel på base64-metoden? :-)
Avatar billede websam Nybegynder
12. oktober 2006 - 20:10 #3
Public Shared Function GenerateHash(ByVal SourceText As String) As String
            'Create an encoding object to ensure the encoding standard for the source text
            Dim Ue As New UnicodeEncoding
            'Retrieve a byte array based on the source text
            Dim ByteSourceText() As Byte = Ue.GetBytes(SourceText)
            'Instantiate an MD5 Provider object
            Dim Md5 As New MD5CryptoServiceProvider
            'Compute the hash value from the source
            Dim ByteHash() As Byte = Md5.ComputeHash(ByteSourceText)
            'And convert it to String format for return
            Return Convert.ToBase64String(ByteHash)
        End Function
Avatar billede websam Nybegynder
12. oktober 2006 - 20:11 #4
Denne mangler en "salt" til at sikre at folk ikke kan gætte sig til et password.

/Websam
Avatar billede websam Nybegynder
12. oktober 2006 - 20:12 #5
Og mere spesifikt laver du base64 her :

Convert.ToBase64String(din streng her)

/Websam
Avatar billede arne_v Ekspert
12. oktober 2006 - 21:01 #6
ltlResults.Text &= "<li>"
      Dim b as Byte
      For Each b in hashedDataBytes
        ltlResults.Text &= String.Format("{0,2:X}", b)
      Next b
      ltlResults.Text &= "</li>"
Avatar billede torotune Nybegynder
13. oktober 2006 - 01:33 #7
Tak til begge! Får I websams tilfælde eks.:

qH/2eaLz5x2RgaZ7dUISLA==

og i Arnes

44A87FF679A2F3E71D9181A67B7542122C

alt efter hvilken encoding der er valgt.

Grunden til at jeg opretter spørgsmålet er, at hvis jeg skal sende en MD5 hash med crosspage over en URL til check-formål skal den vel omdannes til string og ikke sendes som bytearray?? Eller er måske ikke helt med.

Arne - hvad gør "{0,2:X}" i øvrigt i formateringen?
Læg også gerne et svar :-)
Avatar billede arne_v Ekspert
13. oktober 2006 - 02:02 #8
0 = første argument
2 = bredde
X = hexadecimalt

du bør absolut konvertere til streng i den kontekst
Avatar billede torotune Nybegynder
15. oktober 2006 - 21:03 #9
Okay mange tak, det kunne jeg godt bruge :-) Læg et svar også Arne, jeg fylder lidt ekstra på.
Avatar billede arne_v Ekspert
15. oktober 2006 - 21:06 #10
svar
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester