Yadgar (mal wieder Sumpfzigeuner): [MySQL 5.1] Problem mit verschlüsselten Passwörtern

High!

Meine Bibliotheks-Datenbank enthält eine Tabelle für Benutzeraccounts, mit einem Feld "Passwort", VARCHAR(20). Leider akzeptiert der Server dort Einträge nur, wenn sie unverschlüsselt sind - sobald ich "ENCRYPT" als Funktion hinzufüge, bekomme ich die Fehlermeldung

Warning: #1048 Column 'Passwort' cannot be null

Wieso wird ein Passwort durch Verschlüsselung null? Unter MySQL 4.0 hatte ich das Problem nicht... muss bei den Konfigurationseinstellungen der Datenbank etwas geändert werden? Oder ist ENCRYPT bei VARCHAR-Feldern unter MySQL 5.0 grundsätzlich nicht möglich?

Bis bald im Khyberspace!

Yadgar

  1. Hi,

    Meine Bibliotheks-Datenbank enthält eine Tabelle für Benutzeraccounts, mit einem Feld "Passwort", VARCHAR(20). Leider akzeptiert der Server dort Einträge nur, wenn sie unverschlüsselt sind - sobald ich "ENCRYPT" als Funktion hinzufüge,

    Wieso nutzt du überhaupt ENCRYPT? Das verwendet das auf dem System implementierte crypt, und verwendet damit im Normalfall nur die ersten Acht Zeichen - wenn die Benutzer also "bessere" Passwörter wählen, torpedierst du das damit.

    bekomme ich die Fehlermeldung

    Warning: #1048 Column 'Passwort' cannot be null

    Wieso wird ein Passwort durch Verschlüsselung null? Unter MySQL 4.0 hatte ich das Problem nicht... muss bei den Konfigurationseinstellungen der Datenbank etwas geändert werden? Oder ist ENCRYPT bei VARCHAR-Feldern unter MySQL 5.0 grundsätzlich nicht möglich?

    Hinweise im Manual beachtet?
    http://dev.mysql.com/doc/refman/5.1/en/encryption-functions.html#function_encrypt

    MfG ChrisB

    --
    Light travels faster than sound - that's why most people appear bright until you hear them speak.
    1. High!

      Hinweise im Manual beachtet?
      http://dev.mysql.com/doc/refman/5.1/en/encryption-functions.html#function_encrypt

      Habe ich mir angesehen... mit DES_ENCRYPT bekomme ich die Fehlermeldung

      Warning: #1366 Incorrect string value: '\x80,\xE9V\x11\xCE...' for column 'Passwort' at row 1

      ...dann habe ich es mit BLOB als Datentyp versucht, da bekomme ich den Hinweis "Nicht editierbar"... und VARBINARY wirft auch eine Fehlermeldung:

      #1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'NOT NULL' at line 1

      Darf eine VARBINARY nicht NOT NULL sein?

      Auch bei manueller Eingabe (ich benutze PHPMyAdmin) des ALTER-Befehls ohne NOT NULL:
      ALTER TABLE benutzerkonten CHANGE Passwort Passwort VARBINARY

      bekomme ich eine Fehlermeldung:

      #1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 1

      Langsam blicke ich überhaupt nicht mehr durch...

      Bis bald im Khyberspace!

      Yadgar