[VB2010] VBulletin Datenbank Login?

02/24/2011 00:03 Deave1501#1
Ich habe mir in den letzten Tagen ein kleines Programm zusammen gestellt welches ermöglicht mich über eine MySQL mit Passwort und Benutzernamen ein zu loggen. Jetzt wollte ich das ganze auf VBulletin übertragen, das wenn ein Benutzer wenn er im Forum Registriert ist, sich mit den Daten im Programm ein zu loggen, doch wüsste jemand wie ich mein Passwort aus der TextBox.Text in einen MD5-SALT-MD5 Code:rtfm: umwandeln kann das dieser mit dem Passwort aus der Datenbank verglichen werden kann?:confused:

Code für PHP von vbulletin-germany :

PHP Code:
$hashpwd md5(md5($pwd) . $salt); 
Wäre für einen Lösungsvorschlag dankbar :handsdown:
02/24/2011 00:16 Ronox#2
So in etwa müste das aussehen, must halt herausfinden was in der Variablen $salt steht.

Code:
using System.Security.Cryptography;

static string getMd5Hash(string input)
    {
        MD5 tmp5 = MD5.Create();
        byte[] data = tmp5.ComputeHash(Encoding.Default.GetBytes(input));

        StringBuilder stmp= new StringBuilder();

      for (int i = 0; i < data.Length; i++)
        {
            stmp.Append(data[i].ToString("x2"));
        }

          return stmp.ToString();
    }

static string getHashPWD(string salt, string pwd)
    {
    return getMd5Hash(getMd5Hash(pwd) + salt);
    }
02/24/2011 00:49 Deave1501#3
Quote:
Originally Posted by Ronox View Post
So in etwa müste das aussehen, must halt herausfinden was in der Variablen $salt steht.

Code:
using System.Security.Cryptography;

static string getMd5Hash(string input)
    {
        MD5 tmp5 = MD5.Create();
        byte[] data = tmp5.ComputeHash(Encoding.Default.GetBytes(input));

        StringBuilder stmp= new StringBuilder();

      for (int i = 0; i < data.Length; i++)
        {
            stmp.Append(data[i].ToString("x2"));
        }

          return stmp.ToString();
    }

static string getHashPWD(string salt, string pwd)
    {
    return getMd5Hash(getMd5Hash(pwd) + salt);
    }
danke, könntest du den Code vielleicht mir als Visual Basic 2010 Code geben? Ich komme nicht wirklich mit C++ zurecht.
Die Salts werden aus einer Zahlenreihe generiert und in der Datenbank unter:

Datenbank: XXX
Tabelle: user
Spalte: salt


abgelegt.

Jetzt müsste man doch logischer weise nur noch in deinem Code durch den Benutzernamen, durch eine MySQL abfrage den zugehörigen Salt Code erhalten?
02/24/2011 09:12 Ronox#4
Sry, hatte ich nicht bedacht, hatte lange nicht mehr VB programmiert aber müste ungefähr so aussehen:

Code:
    Private Function getMd5Hash(ByVal input) As String

        Dim tmp5 As System.Security.Cryptography.MD5
        Dim data As Byte = tmp5.ComputeHash(System.Text.Encoding.Default.GetBytes(input))

        Dim stmp As System.Text.StringBuilder
        Dim n As Int32 = data.
        For i = 0 To data.Length
            stmp.Append(data[i].ToString("x2"));
        Next

          return stmp.ToString();
    End Function

    Private Function getHashPWD(ByVal salt As String, ByVal pwd As String) As String
        Return getMd5Hash(getMd5Hash(pwd) + salt)
    End Function
02/24/2011 14:44 Deave1501#5
Quote:
Originally Posted by Ronox View Post
Sry, hatte ich nicht bedacht, hatte lange nicht mehr VB programmiert aber müste ungefähr so aussehen:

Code:
    Private Function getMd5Hash(ByVal input) As String

        Dim tmp5 As System.Security.Cryptography.MD5
        Dim data As Byte = tmp5.ComputeHash(System.Text.Encoding.Default.GetBytes(input))

        Dim stmp As System.Text.StringBuilder
        Dim n As Int32 = data.
        For i = 0 To data.Length
            stmp.Append(data[i].ToString("x2"));
        Next

          return stmp.ToString();
    End Function

    Private Function getHashPWD(ByVal salt As String, ByVal pwd As String) As String
        Return getMd5Hash(getMd5Hash(pwd) + salt)
    End Function
ok danke, doch wenn ich den code
Code:
Imports System.Security.Cryptography
Imports System.Text
Module md5

    Private Function getMd5Hash(ByVal input As String) As String
        Dim tmp5 As md5 = md5.Create()
        Dim data As Byte() = tmp5.ComputeHash(Encoding.[Default].GetBytes(input))

        Dim stmp As New StringBuilder()

        For i As Integer = 0 To data.Length - 1
            stmp.Append(data(i).ToString("x2"))
        Next

        Return stmp.ToString()
    End Function


End Module

Public Class Form1
    Private Shared Function getHashPWD(ByVal salt As String, ByVal pwd As String) As String
        Return getMd5Hash(getMd5Hash(pwd) & salt)
    End Function
End Class
so einfügen kommen 3 Fehler könntest du dir das vielleicht mal angucken, ich verstehe nicht was falsch ist :confused:
02/24/2011 15:16 Ronox#6
Ok, hatte jetzt ein wenig Zeit, also:

Datei: md5.vb

Code:
Imports System.Security.Cryptography
Imports System.Text

Module md5
    Public Function getMd5Hash(ByVal input As String) As String
        Dim tmp5 As System.Security.Cryptography.MD5 = System.Security.Cryptography.MD5.Create()
        Dim data As Byte() = tmp5.ComputeHash(Encoding.[Default].GetBytes(input))

        Dim stmp As New StringBuilder()

        For i As Integer = 0 To data.Length - 1
            stmp.Append(data(i).ToString("x2"))
        Next

        Return stmp.ToString()
    End Function

End Module
Datei: Form1.vb
Code:
Public Class Form1

    Private Function getHashPWD(ByVal salt As String, ByVal pwd As String) As String
        Return getMd5Hash(getMd5Hash(pwd) & salt)
    End Function

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        labelPW.Text = getHashPWD(salt.Text, pw.Text)
    End Sub
End Class
Form1:
Textbox = Name: salt
Textbox = Name: pw
Label = Name: labelPW
Button = Name Button1 / Event Click => Button1_Click

So es funktioniert, kann dir gerne auch mein Project noch Hochladen, aber steht auch nicht mehr drin als hier zu sehen :)
02/24/2011 15:46 Deave1501#7
Quote:
Originally Posted by Ronox View Post
Ok, hatte jetzt ein wenig Zeit, also:

Datei: md5.vb

Code:
Imports System.Security.Cryptography
Imports System.Text

Module md5
    Public Function getMd5Hash(ByVal input As String) As String
        Dim tmp5 As System.Security.Cryptography.MD5 = System.Security.Cryptography.MD5.Create()
        Dim data As Byte() = tmp5.ComputeHash(Encoding.[Default].GetBytes(input))

        Dim stmp As New StringBuilder()

        For i As Integer = 0 To data.Length - 1
            stmp.Append(data(i).ToString("x2"))
        Next

        Return stmp.ToString()
    End Function

End Module
Datei: Form1.vb
Code:
Public Class Form1

    Private Function getHashPWD(ByVal salt As String, ByVal pwd As String) As String
        Return getMd5Hash(getMd5Hash(pwd) & salt)
    End Function

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        labelPW.Text = getHashPWD(salt.Text, pw.Text)
    End Sub
End Class
Form1:
Textbox = Name: salt
Textbox = Name: pw
Label = Name: labelPW
Button = Name Button1 / Event Click => Button1_Click

So es funktioniert, kann dir gerne auch mein Project noch Hochladen, aber steht auch nicht mehr drin als hier zu sehen :)

danke danke danke danke danke du bist der beste :handsdown::handsdown::handsdown: