Spalte von DataRow zu MD5 Hash.

  • VB.NET

Es gibt 13 Antworten in diesem Thema. Der letzte Beitrag () ist von ErfinderDesRades.

    Spalte von DataRow zu MD5 Hash.

    Guten Tag allerseits,

    Ich hab ne Datenquelle namens XPortDataSet.

    VB.NET-Quellcode

    1. 'TODO: Diese Codezeile lädt Daten in die Tabelle "XPortDataSet.Kundenstamm". Sie können sie bei Bedarf verschieben oder entfernen.
    2. Me.KundenstammTableAdapter.Fill(Me.XPortDataSet.Kundenstamm)
    3. 'TODO: Diese Codezeile lädt Daten in die Tabelle "XPortDataSet.Artikelstamm". Sie können sie bei Bedarf verschieben oder entfernen.
    4. Me.ArtikelstammTableAdapter.Fill(Me.XPortDataSet.Artikelstamm)


    Diese Datenquelle enthält 2 Tabellen, namens Artikelstamm & Kundenstamm.


    Hab 2 Funktionen geschrieben, die den Artikelstamm und Kundenstamm exportieren im
    Form_Load Event lass ich diese aufrufen.

    VB.NET-Quellcode

    1. Function export(ByVal DT As XPortDataSet, ByVal Fullpath As String, ByVal Delimiter As String)
    2. Dim intI, intC As Integer
    3. Dim strValue As String
    4. Dim strRowValue As String
    5. Dim enc As System.Text.Encoding
    6. Dim Qualifier As String = "~"
    7. Dim row As DataRow
    8. enc = System.Text.Encoding.GetEncoding(1252)
    9. Dim swriter As New StreamWriter(Fullpath, False, enc)
    10. intC = DT.Artikelstamm.Columns.Count()
    11. For Each row In DT.Artikelstamm.Rows
    12. strRowValue = ""
    13. strValue = ""
    14. For intI = 0 To intC - 1
    15. strValue = row.Item(intI).ToString
    16. strValue = strValue.Replace(Qualifier, Qualifier & Qualifier)
    17. strRowValue = strRowValue & Qualifier & strValue & Qualifier
    18. strRowValue = strRowValue.Replace("~~~", "~")
    19. strRowValue = strRowValue.TrimEnd("~")
    20. strRowValue = strRowValue.Replace("~~", "~")
    21. If intI < intC - 1 Then
    22. strRowValue = strRowValue & Qualifier
    23. End If
    24. Next
    25. swriter.Write(strRowValue.TrimStart(strRowValue, " "))
    26. swriter.ToString()
    27. Next
    28. swriter.Close()
    29. End Function


    Ich möchte jetzt eine htpasswd generieren, aus der Tabelle "Kundenstamm" die Spalte "Postleitzahl" sollen die User sein und die Spalte "Kundennummer" das Passwort (md5 bezüglich HTPASSWD).

    Ich hab momentan keine Idee wie ich oben bei dem Code richtig einsteigen kann um das zu realisieren.
    MD5 ist ganz einfach. Siehe hierzu folgenden Code:

    VB.NET-Quellcode

    1. Imports System.Security.Cryptography
    2. Imports System.Text
    3. Module Module1
    4. Sub Main()
    5. Console.WriteLine(MD5CON("Andreas"))
    6. Console.ReadKey()
    7. End Sub
    8. Private Function MD5CON(ByVal ConvertedHash As String) As String
    9. Dim Res As String = ""
    10. Try
    11. Dim MD5 As New MD5CryptoServiceProvider
    12. Dim Data As Byte()
    13. Dim Result As Byte()
    14. Dim Tmp As String = ""
    15. Data = Encoding.ASCII.GetBytes(ConvertedHash)
    16. Result = MD5.ComputeHash(Data)
    17. For i As Integer = 0 To Result.Length - 1
    18. Tmp = Hex(Result(i))
    19. If Len(Tmp) = 1 Then Tmp = "0" & Tmp
    20. Res += Tmp
    21. Next
    22. Catch ex As Exception
    23. MsgBox("Hash konne nicht erstellt werden.", MsgBoxStyle.Critical)
    24. Res = ""
    25. End Try
    26. Return Res
    27. End Function
    28. End Module


    MFG Andi2572

    Andi2572 schrieb:

    C&P ?


    Ehm, nein.

    Dann würde es nicht funktionieren.

    @TE:

    Bitte schau es dir genau an, dann solltest du von selber drauf kommen... du hast eine Eingabe (Hier Koonsole) und du hast eine Funktion (die du so übernehmen kannst)

    Also die Funktion kopieren, in dein Objekt rein pasten wo du drin arbeitest, dann (Form, Konsole, keine Ahnung) irgendwie die Eingabe realisieren und dann die Funktion aufrufen.

    Ansonsten einfach ma schaun was so im Code steht damit du es auch verstehst.
    md5
    datarow

    Auf ein Item einer DataRow greifst du folgendermasen zu:

    VB.NET-Quellcode

    1. Dim value As MyType = TryCast(myDataRow.Item("ColumnName"), MyType)
    2. If value = Nothing Then
    3. ' do something
    4. End If


    In einer DataRow werden die Sache als String gespeichert (glaube ich), du musst sie daher Konvertieren.
    TryCast macht dass, liefert aber "Nothing" zurück, wenn es nicht geht (es wird keine Exception geworfen).

    Casting: Welches Benutze ich?


    Zeitmessung

    Jede Variante wurde mit jeweils 1000 Testdurchläufen getestet.

    (Typumewandlungs-Art
    Zeit ohne Fehler
    Zeit mit Fehler)

    DirectCast
    0.0019 ms
    2956.5607 ms

    TryCast
    0.0029 ms
    0.0056 ms

    CType
    0.0019 ms
    2897.9826 ms

    (Hier sieht man auch gut was ein Try Catch kostet... 3 Sekunden für Fehler via Try Catch abfangen... => Bei Trycast benötigst du kein Try Catch, da du einfach auf Nothing prüfst.
    Der TE verwendet ein typisiertes Dataset - da braucht er garnet Casten.

    Nur seine Frage versteh ich ühaupt net
    Ich möchte jetzt eine htpasswd generieren, aus der Tabelle "Kundenstamm" die Spalte "Postleitzahl" sollen die User sein und die Spalte "Kundennummer" das Passwort (md5 bezüglich HTPASSWD).

    er will ein passwort generieren - jo, kannerja machen: wie wärs mit "ölksdjfivjias83"?
    Aus der Tabelle Kundenstamm die Postleitzahl sollen User sein? was?? Die postleitzahlen sind aber doch schon Postleitzahlen.
    Ah - und die Kundennummer ist das Passwort? wozu dann aber noch eines generieren?

    was ist ein "htPasswd", und was bedeutet "md5 bezüglich HTPASSWD"?