md5 Verschlüsselung

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
de_master
User
Beiträge: 72
Registriert: Samstag 15. Januar 2005, 15:19

Freitag 2. Juni 2006, 11:02

Hallo @all,
ich schreibe mit der Methode MySQLdbAddUser() den User in die Datenbank. Das Passwort verschlüssel ich mit hilfe von md5 und schicke es an die Datenbank.


Code: Alles auswählen

newPassword = md5.new(password).digest()
            #zusammenbau des SQL Strings
            sql = "INSERT INTO t_user (username, password, firstname, lastname, mail) VALUES('" + username + "', '" + newPassword + "', '" + firstname + "', '" + lastname + "', '" + mail + "')"
            #anlegen des Users
            self.db.query(sql)
Wenn ich jetzt das ganze auslese erhalte ich jedoch ein komplett anderes Ergebnis als ich eigentlich in die DB geschrieben habe.

Code: Alles auswählen

sql = "SELECT username, password FROM t_user WHERE username = '" + username + "'"
            self.db.query(sql)
            r = self.db.store_result()
            UserListe = r.fetch_row()

            print md5.new(password).digest()
            print md5.new(UserListe[0][1]).digest()
            print UserListe[0][0]
Weis jemand was ich falsch mache?

Hier das gesammte Programm:

Code: Alles auswählen

# 2 => Verbindungsfehler!
# 3 => User schon vorhanden
# 4 => Username nicht vorhanden
# 5 => PW ist falsch!

# 10 => LogIn OK!

import MySQLdb
import md5

class MyMySQLdb:
    def __init__(self):
        self.db = MySQLdb.connect(host="localhost",user="root", passwd="",db="test")

        #Check ob Verbindung OK!
        if self.db:
            pass        #Verbindung OK
        else:
            return 2

    def MySQLdbAddUser(self, password, firstname, lastname, mail):
        #username bilden und Check ob schon in DB vorhanden
        username = firstname + "." + lastname
        sql = "SELECT username FROM t_user WHERE username = '" + username + "'"
        self.db.query(sql)
        result = self.db.store_result()
        if result.fetch_row():
            #Username schon vorhanden abbruch!
            return 3
        else:
            #lege User an! ->Verschlusseln des PWs
            newPassword = md5.new(password).digest()
            #zusammenbau des SQL Strings
            sql = "INSERT INTO t_user (username, password, firstname, lastname, mail) VALUES('" + username + "', '" + newPassword + "', '" + firstname + "', '" + lastname + "', '" + mail + "')"
            #anlegen des Users
            self.db.query(sql)
        

    def MySQLdbLogIn(self, username, password):
        #Check ob User vorhanden
        sql = "SELECT username FROM t_user WHERE username = '" + username + "'"
        self.db.query(sql)
        result = self.db.store_result()
        #ist username vorhanden?
        if result.fetch_row():
            #dann weiter log in
            sql = "SELECT username, password FROM t_user WHERE username = '" + username + "'"
            self.db.query(sql)
            r = self.db.store_result()
            UserListe = r.fetch_row()

            print md5.new(password).digest()
            print md5.new(UserListe[0][1]).digest()
            print UserListe[0][0]
            
            if username == UserListe[0][0]:
                if password == md5.new(UserListe[0][1]).digest():
                    #LogIn OK!
                    print "LogIn OK!"
                    return 10
                else:
                    #PW falsch!
                    return 5
            else:
                return 4
        else:
            #Username nicht vorhanden!
            return 4

        

    
test = MyMySQLdb()
#status = test.MySQLdbAddUser("12345", "Philipp", "Bartel", "Philipp.Bartel@")
status = test.MySQLdbLogIn("Michael.Strecker", "bb")
print status
Gruss Michael
Zuletzt geändert von de_master am Freitag 2. Juni 2006, 12:03, insgesamt 1-mal geändert.
de_master
User
Beiträge: 72
Registriert: Samstag 15. Januar 2005, 15:19

Freitag 2. Juni 2006, 12:02

Oke prob. behoben :)
Antworten