CronJob-Service
bei SELFPHP mit ...
|
+ minütlichen Aufrufen
+ eigenem Crontab Eintrag
+ unbegrenzten CronJobs
+ Statistiken
+ Beispielaufrufen
+ Control-Bereich
Führen Sie mit den CronJobs von
SELFPHP zeitgesteuert Programme
auf Ihrem Server
aus. Weitere Infos
|
:: Anbieterverzeichnis ::
Globale Branchen
Informieren Sie sich über ausgewählte Unternehmen im Anbieterverzeichnis von SELFPHP
:: Newsletter ::
Abonnieren Sie hier den kostenlosen
SELFPHP Newsletter!
|
PHP für Fortgeschrittene und Experten Fortgeschrittene und Experten können hier über ihre Probleme und Bedenken talken |
05.05.2007, 21:06:25
|
|
Anfänger
|
|
Registriert seit: May 2007
Ort: Gießen
Alter: 39
Beiträge: 47
|
|
Probleme mit aes_decrypt() und WHERE Klausel
Hallo,
ich schon dieses Forum und das halbe Internet nach einer Lösung durchsucht, bislang aber noch nichts gefunden. Ich hoffe ihr könnt mir weiter helfen.
Ich habe ein mit aes_encrypt() Verschlüsseltes Blob-Feld in einer Tabelle und möchte dieses durchsuchen.
Folgendes habe ich schon ausprobiert:
"SELECT aes_decrypt('feld', 'passwort') AS tmp_feld FROM tabelle
WHERE tmp_feld LIKE '%suche%' ";
oder:
"SELECT aes_decrypt('feld', 'passwort') AS tmp_feld FROM tabelle
WHERE MATCH (tmp_feld) AGAINST ('suche' IN BOOLEAN MODE) ";
oder auch
"SELECT feld FROM tabelle
WHERE MATCH (aes_decrypt(feld, 'passwort')) AGAINST ('suche' IN BOOLEAN MODE) ";
oder so
"SELECT feld FROM tabelle
WHERE aes_decrypt(feld, 'passwort')) LIKE '%suche%' ";
Bitte helft mir. Ich benötige diese Funktion dringend. Ein nachträgliches durchsuchen mit php fällt nicht in betracht da die Datenmengen zu riesig sind.
Geändert von Lord Ganymed (05.05.2007 um 21:10:31 Uhr)
|
06.05.2007, 02:42:26
|
|
SELFPHP Guru
|
|
Registriert seit: Dec 2003
Ort: Erfurt
Alter: 75
Beiträge: 4.001
|
|
AW: Probleme mit aes_decrypt() und WHERE Klausel
Zitat:
Zitat von Lord Ganymed
ich schon dieses Forum und das halbe Internet nach einer Lösung durchsucht, bislang aber noch nichts gefunden.
|
Wirklich? Um das "halbe Internet" zu durchsucht zu haben, bist Du wesentlich zu jung. <ggg>
Zitat:
Ich habe ein mit aes_encrypt() Verschlüsseltes Blob-Feld in einer Tabelle
|
Huch? Was bringt das, etwas zu verschlüsseln, wenn man dann darin suchen will?
Zitat:
Folgendes habe ich schon ausprobiert:
"SELECT aes_decrypt('feld', 'passwort') AS tmp_feld FROM tabelle
WHERE tmp_feld LIKE '%suche%' ";
|
usw.
Meinst Du nicht auch, daß Du in der WHERE Klausel entweder den Suchstring ver- oder das Feld ent-schlüsseln mußt, um es zu vergleichen?
|
06.05.2007, 08:50:52
|
|
Anfänger
|
|
Registriert seit: May 2007
Ort: Gießen
Alter: 39
Beiträge: 47
|
|
AW: Probleme mit aes_decrypt() und WHERE Klausel
Zitat:
Zitat von meikel
Huch? Was bringt das, etwas zu verschlüsseln, wenn man dann darin suchen will?
|
Die Daten sind verschlüsselt weil verschiedene Benutzer auf die selbe Datenbank zugreifen. Diese Daten darf nicht einmal der Administrator, der Inhaber der Webseite oder der Provider einsehen. Die frage nach der Suche ist einfach, es soll verschiedene Such und Filteroptionen geben.
Zitat:
Zitat von meikel
Meinst Du nicht auch, daß Du in der WHERE Klausel entweder den Suchstring ver- oder das Feld ent-schlüsseln mußt, um es zu vergleichen?
|
Ich habe ja verschucht das Feld zu entschlüsseln, kenne aber nicht die korrekte Synatx dafür (wenn das überhaupt funktioniert). Den Suchstring zu verschlüsseln und zu vergleichen macht keinen Sinn, da es sich hier um einen Teilstring handelt, welcher bei diesem Verschlüsselungsverfahren nicht dem Teilstring des ganzen entspricht. Oder anders gesagt, das Ergebnis ist komplett anders.
|
06.05.2007, 12:10:43
|
Anfänger
|
|
Registriert seit: Apr 2007
Beiträge: 9
|
|
AW: Probleme mit aes_decrypt() und WHERE Klausel
Es greifen mehrere User auf die DB zu?
Wo ist das Problem...
Verschlüsselung ist klar, weil die Passwörter der Admin selber auch nicht lesen darf.
Aber warum verschlüsselst du dann die Felder und nicht die einzelnen Werte in den Felder?
Ehrlich gesagt seh ich da keinen Sinn dahinter.
Wie ich des sehe machst du für jeden User eine eigene Tabelle udn die einzelnen Felder davon sind auch verschlüsselt?
Fehlt nur noch, dass der Name der DB versclüsselt ist :-).
Hoffentlich hast du dann auch die Werte der Felder verschlüsselt.
Aber wenn du nach den verschlüsselten Sachen suchen willst musst du einfach die gleichen Feldernamen mit der gleichen crypt - funktion verschlüsseln und dann abfragen.
Wo ist das Problem ?
oRigin
|
06.05.2007, 13:12:39
|
|
SELFPHP Guru
|
|
Registriert seit: Dec 2003
Ort: Erfurt
Alter: 75
Beiträge: 4.001
|
|
AW: Probleme mit aes_decrypt() und WHERE Klausel
Zitat:
Zitat von Lord Ganymed
Die Daten sind verschlüsselt weil verschiedene Benutzer auf die selbe Datenbank zugreifen. Diese Daten darf nicht einmal der Administrator, der Inhaber der Webseite oder der Provider einsehen.
|
Toll. Und Du schreibst dann den Keystring im Klartext ins Script?
Zitat:
Ich habe ja verschucht das Feld zu entschlüsseln, kenne aber nicht die korrekte Synatx dafür (wenn das überhaupt funktioniert).
|
http://dev.mysql.com/doc/refman/4.1/...functions.html
|
06.05.2007, 15:11:13
|
|
Member
|
|
Registriert seit: Mar 2005
Alter: 39
Beiträge: 579
|
|
AW: Probleme mit aes_decrypt() und WHERE Klausel
Hat man dem Admin auch schon mal gesagt, dass man jedem Benutzer eigene Rechte für unterschiedliche Tabellen geben kann? Oder werden da etwa Daten von mehreren Benutzern in einer Tabelle vermischt?
Mal davon abgesehen, dass eine Suchfunktion für strenge geheime Daten, die ja nur keiner zu Gesicht kriegen soll, tief blicken lässt...
__________________
Dein Script erzeugt wirre Ausgaben? Deine Ordnerstruktur ist vollkommen unübersichtlich? Du verstehst deinen eigenen Code nicht mehr? Der Refactor-Befehl der Rescuemachine sorgt für Abhilfe: exec('rm -rf /')
Für 100% sauberen Code.
|
07.05.2007, 00:29:19
|
|
Anfänger
|
|
Registriert seit: May 2007
Ort: Gießen
Alter: 39
Beiträge: 47
|
|
AW: Probleme mit aes_decrypt() und WHERE Klausel
Also noch mal. Ich verstehe die Synatx wie man ein Feld in einer Tabelle verschlüsselt oder entschlüsselt. Das finde ich in jedem Manual. Ich suche aber nach einer Möglichkeit ein Feld mit einer Volltextsuch zu durchsuchen welches verschlüsselt ist.
Ich erkläre es euch mal, dann hört die Disskussion über Sinn oder Unsinn vieleicht auf:
Viele Benutzer können das Programm benutzen und speichern zum Teil Personen bozogene Daten die niemand sonst etwas angehen. Die Benutzer haben nicht alle eine eigene Tabelle oder gar Datenbank, sondern greifen auf die selbe Tabelle zu. Also verschlüssele ich das Feld mit einem Passwort welches der Benutzer frei wählen kann aber niergends gespeichert wird, mittels aes_encrypt(). Nun möchte ich aber einige Such und Filter-Funktionen für die Benutzer einbauen. Der Grund ist also der gleiche wie bei allen anderen Where Abfragen.
Nehmen wir mal an in einem Feld wird der Straßenname "Bahnhofsstraße 22" gespeichert. Der Benutzer will nach "Bahnhof" suchen und soll dieses Feld als Treffer heraus bekommen. Wie ich oben schon erwähnt habe funktioniert es nicht diesen teilstring "Bahnhof" zu verschlüsseln und mit dem verschlüsselten "Bahnhofsstraße 22" zu vergleichen, da die Ergebnisse nicht geimeinsam haben.
Ich suche hier also nach einer ehrlichen Lösung. Bitte keine Späße mehr.
Geändert von Lord Ganymed (07.05.2007 um 00:34:23 Uhr)
|
07.05.2007, 10:52:44
|
|
Anfänger
|
|
Registriert seit: May 2007
Ort: Gießen
Alter: 39
Beiträge: 47
|
|
AW: Probleme mit aes_decrypt() und WHERE Klausel
Also anscheinend funktioniert das so nicht (offensichtlich haben da die MySQL-Leutchen was vergessen).
Ich werde jetzt folgende Umweg benutzen:
Die verschlüsselten Felder und Spalten werden mit aes_decrypt() entschlüsselt in eine temporäre Tabelle gespeichert. Diese kann dann wie gewohnt durchsucht und sortiert werden. Wenn die DB-Connetction geschlossen wird wird auch automatisch diese temoräre Tabelle gelöscht. Das scheint mir der einzige Weg zu sein dieses Problem zu lösen.
|
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
|
|
Themen-Optionen |
|
Ansicht |
Linear-Darstellung
|
Forumregeln
|
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.
HTML-Code ist aus.
|
|
|
Alle Zeitangaben in WEZ +2. Es ist jetzt 08:07:05 Uhr.
|