Mysql login hilfe string und salt

  • VB.NET

Es gibt 4 Antworten in diesem Thema. Der letzte Beitrag () ist von MarkusxX25.

    Mysql login hilfe string und salt

    Hallo liebe VB-Programmer ich sitze vor ein problem ich habe hier ein php login und wolte nun mit VB ein mysql login machen.
    Nur hat mein forum ein md5 salt kann mir jemand helfen ?

    Ich habe mal ein login php rausgenommen .
    Spoiler anzeigen

    PHP-Quellcode

    1. <?PHP
    2. require("connect.php");
    3. //Get username information
    4. $username=$_POST['username'];
    5. $password=$_POST['password'];
    6. $username=mysql_real_escape_string($username);
    7. $password=mysql_real_escape_string($password);
    8. //check that user is not banned
    9. $banned=mysql_query("SELECT * FROM GUIDTech WHERE user='" .$username. "'");
    10. while($rows=mysql_fetch_array($banned)){
    11. $banned1=$rows['BANNED'];
    12. }
    13. //Get id from username for retrieval of the password hash and salt
    14. $result=mysql_query("SELECT * FROM ".$pf."members WHERE name='" . $username. "'")or die('fout'. mysql_error());
    15. while($rows=mysql_fetch_array($result)){
    16. $id=$rows['id'];
    17. //We need this information to make sure the user is allowed to access this system
    18. $group=$rows['mgroup'];
    19. $user2 = $rows['name'];
    20. }
    21. //*********************************************************************
    22. //Modify this table to use your usergroup names
    23. $allowedgroups = array (
    24. "Root Admin",
    25. "Global Moderator",
    26. "Administrators",
    27. "Head Moderator",
    28. "Special Member",
    29. "Support",
    30. );
    31. //**********************************************************************
    32. //Get password hash and salt using email
    33. $nick=mysql_query("SELECT * FROM ".$pf."members WHERE name='".$username."'");
    34. while($rows=mysql_fetch_array($nick)){
    35. $nickname=$rows['members_display_name'];
    36. $m_login_key = $rows['member_login_key'];
    37. }
    38. //Get use the group ID to get the group title text
    39. $verify=mysql_query("SELECT * FROM ".$pf."groups");
    40. while($rows=mysql_fetch_array($verify)){
    41. $result=mysql_query("SELECT * FROM ".$pf."groups WHERE g_id='".$group."'");
    42. while($rows2=mysql_fetch_array($result)){
    43. $group=$rows2['g_title'];
    44. }
    45. }
    46. $usergroup = false;
    47. if(in_array($group, $allowedgroups)) {
    48. $usergroup = true;
    49. }
    50. //Get password hash and salt using email
    51. $result=mysql_query("SELECT * FROM ".$pf."members_converge WHERE converge_id='" . $id . "'");
    52. while($rows=mysql_fetch_array($result)){
    53. $checkpass=$rows['converge_pass_hash'];
    54. $salt=$rows['converge_pass_salt'];
    55. }
    56. //echo $checkpass . "<br />" . md5($_POST['pass']);
    57. //$ip = explode('.', $_SERVER['REMOTE_ADDR']);
    58. //$salt2 = md5($DBpassword . $DBusername);
    59. //$pass2 = md5( md5( $id . "-" . $ip[0] . '-' . $ip[1] . '-' . $m_login_key) . $salt2);
    60. $password = md5( md5( $salt ) . md5( $password ) );
    61. if($password != $checkpass/*$_COOKIE['ipb_stronghold']*/){
    62. echo "Wrong password" ; //Error
    63. exit;
    64. }
    65. if(!$usergroup){
    66. echo "You do not have the permission required to access this area. " . $group;
    67. echo "<br><a href='index.php'>Go Back</a>";
    68. exit;
    69. }
    70. session_start();
    71. $_SESSION['code'] = md5(rand(1,1000));
    72. $_SESSION['user'] = $user2;
    73. $_SESSION['nickname'] = $nickname;
    74. $res = mysql_query("SELECT * FROM GUIDTech WHERE user='". $_SESSION['user'] ."'")or die(mysql_error());
    75. //$data = mysql_fetch_assoc($res);
    76. if(mysql_num_rows($res) >= 1) {
    77. mysql_query("UPDATE GUIDTech SET code='" . $_SESSION['code'] ."', user='". $_SESSION['user'] . "', nickname='". $_SESSION['nickname']."' WHERE user='" . $_SESSION['user'] ."'")or die(mysql_error());
    78. }
    79. else {
    80. mysql_query("INSERT INTO GUIDTech (user, nickname, code) VALUES ('". $_SESSION['user'] ."', '". $_SESSION['nickname']."', '" .$_SESSION['code'] ."')")or die(mysql_error());
    81. }
    82. header("Location: loginok.php");
    83. ob_end_flush();
    84. ?>


    Kann mir jemand helfen dabei so ein login zu erstellen ?

    Mfg
    Hallo,
    ich habe deinen PHP Code mal überflogen.
    Um einen völligen Überblick über den Login-Mechanismus zu haben reicht dieser Ausschnitt nicht ganz.
    Daraus lesen konnte ich jedoch, das ja prinzipiell "nur" Strings miteinander verglichen werden.
    Der einzige String den man nicht direkt vergleichen kann ist das Passwort.
    Hierzu benötigst Du lediglich eine Funktion welche die das eingegebene Passwort umwandelt (MD5Hash) und den umgewandelten String dann mit dem Inhalt des Feldes in der Datenbank vergleicht:

    Mir dieser Funktion erhältst den MD5Hash eines Strings:

    VB.NET-Quellcode

    1. Function getMD5Hash(ByVal passwort As String) As String
    2. Dim md5pasword As New Security.Cryptography.MD5CryptoServiceProvider
    3. Dim BytesFromPassword() As Byte = System.Text.Encoding.ASCII.GetBytes(passwort)
    4. Dim Result As String = ""
    5. BytesFromPassword = md5pasword.ComputeHash(BytesFromPassword)
    6. For Each b As Byte In BytesFromPassword
    7. Result += b.ToString()
    8. Next
    9. Return Result
    10. End Function
    Steht doch alles da:

    Quellcode

    1. $password = md5( md5( $salt ) . md5( $password ) );
    2. if($password != $checkpass/*$_COOKIE['ipb_stronghold']*/){
    3. echo "Wrong password" ; //Error
    4. exit;
    5. }

    $password wird übergeben, checkpass und salt sind in der DB.

    Also salt mit md5 hashen, passwort mid md5 hashen, beides zusammen (mit "&" zusammengefügt) noch mal mit md5 hashen und mit checkpass vergleichen.

    Die einzige Frage: Was hat MySQL mit dem ganzen Kram zu tun ???? Bzw was soll ein "MySQL Login" sein?