SELFPHP: Version 5.8.2 Befehlsreferenz - Tutorial – Kochbuch – Forum für PHP Einsteiger und professionelle Entwickler

SELFPHP


Professional CronJob-Service

Suche



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



:: Buchempfehlung ::

PHP 5.3 & MySQL 5.1

PHP 5.3 & MySQL 5.1 zur Buchempfehlung
 

:: Anbieterverzeichnis ::

Globale Branchen

Informieren Sie sich über ausgewählte Unternehmen im Anbieterverzeichnis von SELFPHP  

 

:: Newsletter ::

Abonnieren Sie hier den kostenlosen SELFPHP Newsletter!

Vorname: 
Name:
E-Mail:
 
 

Zurück   PHP Forum > SELFPHP > PHP für Fortgeschrittene und Experten

PHP für Fortgeschrittene und Experten Fortgeschrittene und Experten können hier über ihre Probleme und Bedenken talken

Antwort
 
Themen-Optionen Ansicht
  #1  
Alt 05.05.2007, 21:06:25
Benutzerbild von Lord Ganymed
Lord Ganymed Lord Ganymed ist offline
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)
Mit Zitat antworten
  #2  
Alt 06.05.2007, 02:42:26
Benutzerbild von meikel (†)
meikel (†) meikel (†) ist offline
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 Beitrag anzeigen
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?
Mit Zitat antworten
  #3  
Alt 06.05.2007, 08:50:52
Benutzerbild von Lord Ganymed
Lord Ganymed Lord Ganymed ist offline
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 Beitrag anzeigen
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 Beitrag anzeigen
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.
Mit Zitat antworten
  #4  
Alt 06.05.2007, 12:10:43
oRigin oRigin ist offline
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
Mit Zitat antworten
  #5  
Alt 06.05.2007, 13:12:39
Benutzerbild von meikel (†)
meikel (†) meikel (†) ist offline
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 Beitrag anzeigen
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
Mit Zitat antworten
  #6  
Alt 06.05.2007, 15:11:13
Benutzerbild von Serp
Serp Serp ist offline
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.
Mit Zitat antworten
  #7  
Alt 07.05.2007, 00:29:19
Benutzerbild von Lord Ganymed
Lord Ganymed Lord Ganymed ist offline
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)
Mit Zitat antworten
  #8  
Alt 07.05.2007, 10:52:44
Benutzerbild von Lord Ganymed
Lord Ganymed Lord Ganymed ist offline
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.
Mit Zitat antworten
Antwort


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 
Themen-Optionen
Ansicht

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.

BB-Code ist an.
Smileys sind aus.
[IMG] Code ist aus.
HTML-Code ist aus.

Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
query bringt mit WHERE xyz OR xyz zu viele ergebnisse panametrics MySQLi/PDO/(MySQL) 1 15.09.2006 20:48:56
Frage zu update und where klausel... Fluppi PHP Grundlagen 7 20.06.2005 02:40:56
Das soll nach 1 h ausgeführt werden! Spike15 PHP Grundlagen 12 04.04.2005 17:29:57
Mehrere 'And's in WHERE Klausel DiJae MySQLi/PDO/(MySQL) 10 17.12.2004 11:29:01
Impossible WHERE :: logik probleme, gruppierungen, joins flobee MySQLi/PDO/(MySQL) 3 04.07.2004 13:05:40


Alle Zeitangaben in WEZ +2. Es ist jetzt 17:33:38 Uhr.


Powered by vBulletin® Version 3.8.3 (Deutsch)
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.


© 2001-2024 E-Mail SELFPHP OHG, info@selfphp.deImpressumKontakt