Crypt() und Dbseek() [ERLEDIGT]

Alle Fragen um die Programmierung, die sich sonst nicht kategorisieren lassen. Von Makro bis Codeblock, von IF bis ENDIF

Moderator: Moderatoren

Antworten
Benutzeravatar
Manfred
Foren-Administrator
Foren-Administrator
Beiträge: 21165
Registriert: Di, 29. Nov 2005 16:58
Wohnort: Kreis Wesel
Hat sich bedankt: 206 Mal
Danksagung erhalten: 67 Mal

Crypt() und Dbseek() [ERLEDIGT]

Beitrag von Manfred »

jetzt stehe ich vor der nächsten Wand. Wenn ich mit Crypt(upper()) einen Index aufbaue, dann muß ich doch auch mit Dbseek(crypt(Upper())) suchen?
Gruß Manfred
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
georg
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2823
Registriert: Fr, 08. Feb 2008 21:29
Hat sich bedankt: 95 Mal
Danksagung erhalten: 13 Mal

Re: Crypt() und Dbseek()

Beitrag von georg »

Hallo, Manfred -


ja, wenn ...

Du solltest auf jeden Fall sicherstellen, dass der Suchbegriff exakt so lang ist wie das verschlüsselte Feld.
Liebe Grüsse aus der Eifel,

Georg S. Lorrig
Redakteur der Wiki des Deutschprachigen Xbase-Entwickler e.V.
Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 15689
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Hat sich bedankt: 65 Mal
Danksagung erhalten: 33 Mal
Kontaktdaten:

Re: Crypt() und Dbseek()

Beitrag von brandelh »

Im Prinzip schon, aber die Sortierung stimmt natürlich nicht ;-)

Also für dbseek() - suche nach genau diesem Satz ist OK, aber ob auch linksbündig (nur 4 Zeichen statt 20) geht, bin ich mir nicht mehr sicher.
Ich meine mich zu erinnern, dass die Zeichen von links gleich sind, auch wenn die Länge kürzer ist, dann die Ergebnisse entschlüsseln und in Auswahl Array.
Gruß
Hubert
Benutzeravatar
Manfred
Foren-Administrator
Foren-Administrator
Beiträge: 21165
Registriert: Di, 29. Nov 2005 16:58
Wohnort: Kreis Wesel
Hat sich bedankt: 206 Mal
Danksagung erhalten: 67 Mal

Re: Crypt() und Dbseek()

Beitrag von Manfred »

hm, es geht eigentlich in darum, auch nur die ersten Zeichen zu finden. Selbst Softseek will nicht. Anders formuliert, wen ich den ersten Buchstaben eintippe, wird der auch gefunden. Sobald mehrere dazukommen, wird nichts mehr gefunden.
Der Schlüssel sieht so aus z.B.

Code: Alles auswählen

"Crypt(Upper(name),oSysPara:crypt) + Crypt(Upper(vorname),oSysPara:crypt)"
Engine ist Foxcdx
Set Charset OEM
Nur mal so als Einstiegsinfo.
Aber das mit der exakten Länge probiere ich mal sofort aus.
Gruß Manfred
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
Benutzeravatar
Tom
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 9345
Registriert: Do, 22. Sep 2005 23:11
Wohnort: Berlin
Hat sich bedankt: 100 Mal
Danksagung erhalten: 359 Mal
Kontaktdaten:

Re: Crypt() und Dbseek()

Beitrag von Tom »

Crypt() verschlüsselt nicht jeden Buchstaben einzeln. Wenn man AB cryptet und AC verschlüsselt, beginnen die u.U. unterschiedlich. Und ein einzelnes A wird ggf. nochmal anders verschlüsselt. So geht das nicht. Sonst wäre auch das Entschlüsseln viel zu einfach. ;)
Herzlich,
Tom
Benutzeravatar
Manfred
Foren-Administrator
Foren-Administrator
Beiträge: 21165
Registriert: Di, 29. Nov 2005 16:58
Wohnort: Kreis Wesel
Hat sich bedankt: 206 Mal
Danksagung erhalten: 67 Mal

Re: Crypt() und Dbseek()

Beitrag von Manfred »

ja, ist mir auch schon aufgefallen. Bei nur einem Buchstaben wird anscheinend gar nicht verschlüsselt. Aber deshalb ja meine Frage, was muß man da evtl. beachten? Wobei mich dann aber wieder wundert, warum der gefunden wird, wenn der nicht verschlüsselt wird? Aber vielleicht ist das auch Zufall? Ich muß mir das mal im Debugger ansehen, was bei nur einem Buchstaben passiert, bei Dbseek()
Gruß Manfred
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
Benutzeravatar
AUGE_OHR
Marvin
Marvin
Beiträge: 12903
Registriert: Do, 16. Mär 2006 7:55
Wohnort: Hamburg
Hat sich bedankt: 19 Mal
Danksagung erhalten: 44 Mal

Re: Crypt() und Dbseek()

Beitrag von AUGE_OHR »

ich meine zu erinnern das die alte Tools Crypt() das nachfolgenden Zeichen zum verschlüsseln des vorherigen diente. ( XOR ? )
das letzte Zeichen wurde dabei dann nicht mehr verschlüsselt ... meistens ein SPACE

ein Inkrementelle Suchen auf einen gecrypten Index geht wegen der Länge nicht.
bei NTX kann man den Index im Klartext lesen aber CDX ist es doch komprimiert d.h. du kannst den Index auf "DeCrypt" aufbauen.
gruss by OHR
Jimmy
Benutzeravatar
Manfred
Foren-Administrator
Foren-Administrator
Beiträge: 21165
Registriert: Di, 29. Nov 2005 16:58
Wohnort: Kreis Wesel
Hat sich bedankt: 206 Mal
Danksagung erhalten: 67 Mal

Re: Crypt() und Dbseek()

Beitrag von Manfred »

Der Februar kostet mich echt Nerven.
Jimmy, Dein Stichwort war Gold wert. Klar, indem ich einen Index auf Crypt aufbaue, entschlüssel ich ja in dem Moment wieder den Wert, der in dem feld steht. Und dann darf ich natürlich nicht mit Crypt() suchen, weil dann ja verschlüsselt gesucht wird. Das ist der Mist, wenn ein und dieselbe Funktion beides macht. Das übersieht man schonmal gerne. :lol:
Gruß Manfred
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 15689
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Hat sich bedankt: 65 Mal
Danksagung erhalten: 33 Mal
Kontaktdaten:

Re: Crypt() und Dbseek()

Beitrag von brandelh »

Tom hat geschrieben:Crypt() verschlüsselt nicht jeden Buchstaben einzeln.
Wenn man AB cryptet und AC verschlüsselt, beginnen die u.U. unterschiedlich. Und ein einzelnes A wird ggf. nochmal anders verschlüsselt.
das ist nicht ganz richtig, von links gesehen sind bei gleichem String (ab 2 Byte), Passwort und gleicher Stelle die Ergebnisse identisch:

Code: Alles auswählen

PROCEDURE Main
   LOCAL cPW   := "asakjWslk342"
   LOCAL cTxt1 := "AAA-Test Crypt"
   LOCAL cTxt2 := "AAABTest Crypt"
   LOCAL x

   /* we use the ansi charset by default */
   SET CHARSET TO OEM

   SET ALTERNATE TO test.txt
   SET ALTERNATE ON

   ? "Teste Crypt, String von 1 bis 10 übersetzen"
   ? "PW: ",cPW
   ? "Txt1:",cTxt1
   ? "Txt2:",cTxt2

   FOR x := 1 to 10
       ? x,"1",crypt(left(cTxt1,x),cPW)
       ? x,"2",crypt(left(cTxt2,x),cPW)
   NEXT

   SET ALTERNATE OFF
   inkey(0)
   /* $TODO: place your application code here */
RETURN

ergibt:

Code: Alles auswählen

Teste Crypt, String von 1 bis 10 übersetzen
PW:  asakjWslk342
Txt1: AAA-Test Crypt
Txt2: AAABTest Crypt
         1 1 A
         1 2 A
         2 1 èı
         2 2 èı
         3 1 èı╝
         3 2 èı╝
         4 1 èı╝ƒ
         4 2 èı╝­
         5 1 èı╝ƒ♦
         5 2 èı╝­♦
         6 1 èı╝ƒ♦◄
         6 2 èı╝­♦◄
         7 1 èı╝ƒ♦◄Ø
         7 2 èı╝­♦◄Ø
         8 1 èı╝ƒ♦◄س
         8 2 èı╝­♦◄س
         9 1 èı╝ƒ♦◄س¶
         9 2 èı╝­♦◄س¶
        10 1 èı╝ƒ♦◄س¶O
        10 2 èı╝­♦◄س¶O
Gruß
Hubert
ramses
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2513
Registriert: Mi, 28. Jul 2010 17:16
Hat sich bedankt: 12 Mal
Danksagung erhalten: 77 Mal

Re: Crypt() und Dbseek() [ERLEDIGT]

Beitrag von ramses »

Manfred

Hast du berücksichtigt das bei crypt() eigentlich jedes Zeichen im Ergebniss den Wert im Bereich von 0-255 haben kann? Die kannst du nicht direkt in Datenbankfelder schreiben! Ohne dass du diese zuerst noch in einen Hex String umwandelst wird du kein gutes Resulat sondern nur Probleme bekommen......

Eine einfach Variante wäre ADS-Database Server der bietet die einfache transparente Verschlüsselung, Passwort setzten, fertig.

Cu Carlo
Valar Morghulis

Gruss Carlo
Benutzeravatar
Manfred
Foren-Administrator
Foren-Administrator
Beiträge: 21165
Registriert: Di, 29. Nov 2005 16:58
Wohnort: Kreis Wesel
Hat sich bedankt: 206 Mal
Danksagung erhalten: 67 Mal

Re: Crypt() und Dbseek() [ERLEDIGT]

Beitrag von Manfred »

Hi CArlo,
ist doch alles schon erledigt. Deshalb ja auch das [ERLEDIGT] dahinter. ;-)
Gruß Manfred
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
Antworten