jenslm: Verschlüsselung von GET

ist es moeglich die GET-Veriablen irgendwie zu verschluesseln?
so das aus ?id=55 dann etwas wie ?id=b53b3a3d6ab90ce0268229151c9bde11 wird.
Das ware dann jetzt der MD5-Hash dazu
lg, jens

  1. Moin Moin!

    ist es moeglich die GET-Veriablen irgendwie zu verschluesseln?

    Wozu soll das nötig sein? Sprich: Was ist Dein eigentliches Problem?

    Wenn Du Daten geschützt übermitteln willst, benutze HTTPS statt HTTP.

    so das aus ?id=55 dann etwas wie ?id=b53b3a3d6ab90ce0268229151c9bde11 wird.
    Das ware dann jetzt der MD5-Hash dazu

    ... aus dem Du nie wieder die 55 gewinnen wirst, denn MD5 ist eine Einweg-Hash-Funktion, keine Verschlüsselung.

    Alexander

    --
    Today I will gladly share my knowledge and experience, for there are no sweeter words than "I told you so".
    1. ... aus dem Du nie wieder die 55 gewinnen wirst, denn MD5 ist eine Einweg-Hash-Funktion, keine Verschlüsselung.

      Aber klar, bei einer begrenzten Menge möglicher Werte (hier scheinbar: Zweistellige Zahlen) wäre hier Bruteforce vielleicht sogar erfolgreicher als Regenbogentabellen. Oder aber Tabellen ohne Regenbogen, einfach alle 100 Hashes speichern ^^

      --
      sh:( fo:| ch:? rl:( br:& n4:& ie:{ mo:} va:) de:µ_de:] zu:) fl:( ss:| ls:[ js:(
      1. Aber klar, bei einer begrenzten Menge möglicher Werte (hier scheinbar: Zweistellige Zahlen)

        Interessante Schlussfolgerung :-)
        Das bedeutet also dass dieses Forum nur genau 7-stellige Nicks zulässt, denn schließlich hat meiner ja 7 Buchstaben.

        1. Aber klar, bei einer begrenzten Menge möglicher Werte (hier scheinbar: Zweistellige Zahlen)
          Interessante Schlussfolgerung :-)

          Nee, Annahme :)
          Tatsächlich hätte ich sogar drei Ziffern angenommen, aber wenn ich zwei behaupte schien mir mein Beitrag äääh gewichtiger :-D
          Was weiß ich wie viele Dinge er _ID_entifizieren (wieder eine Annahme) will.

          --
          sh:( fo:| ch:? rl:( br:& n4:& ie:{ mo:} va:) de:µ_de:] zu:) fl:( ss:| ls:[ js:(
          1. so also was ich damit erreichen wollte war einfach nur das die id nicht einfach ausgelesen werden kann. also dass mann nicht drauf guck und direkt weiß ok das ist der 55 datensatz.
            lg, jens

            1. ist es moeglich anstatt den normalen primary key (bei mir die spalte id) auch als zufaelligen zahlen-buchstaben-code dazustellen.

              also anstatt id=5

              das der dantesatz einfach automatisch die id=45hgjfdl5382 oder so bekommt??

              1. Hallo,

                ist es moeglich anstatt den normalen primary key (bei mir die spalte id) auch als zufaelligen zahlen-buchstaben-code dazustellen.
                das der dantesatz einfach automatisch die id=45hgjfdl5382 oder so bekommt??

                ja. Selbstverständlich kann auch eine Textspalte Träger des Primärschlüssels sein.

                Freundliche Grüße

                Vinzenz

                1. und welche textspalte, wie stell ich ein wie hochgezaehlt wird?
                  lg, jens

                  1. Hallo Jens,

                    und welche textspalte

                    jede beliebige :-)

                    wie stell ich ein wie hochgezaehlt wird?

                    gar nicht. Du bist selbst dafür verantwortlich, geeignete Inhalte zu verwenden.
                    Bei MySQL könntest Du zum Beispiel die Funktion UUID() verwenden. Und ja, sowas Nettes wie LAST_INSERT_ID() gibt's dafür nicht.

                    Was ist Dein Ziel? Möchtest Du, dass bestimmte Inhalte nicht einfach durch eine Zählschleife abgerufen werden können?

                    Freundliche Grüße

                    Vinzenz

                    1. Hi!

                      wie stell ich ein wie hochgezaehlt wird?
                      gar nicht. Du bist selbst dafür verantwortlich, geeignete Inhalte zu verwenden.
                      Bei MySQL könntest Du zum Beispiel die Funktion UUID() verwenden. Und ja, sowas Nettes wie LAST_INSERT_ID() gibt's dafür nicht.

                      Das ist auch nicht notwendig, denn eine UUID/GUID hat den Vorteil, dass sie prinzipell auf einem beliebigen Rechner erzeugt werden kann und dabei weltweit eindeutig bleibt. Man muss also eine UUID nicht erst im DBMS erzeugen, und sie dann hinterher abfragen, man kann sie auch gleich im Anwendungsprogramm erzeugen, damit schon Verknüpfungen zu anderen Objekten (im OOP-Sinne oder auch im allgemeinen) erstellen, und so weiter.

                      Wenn man nun solche UUID-Datensätze in das DBMS bringen möchte, macht man entweder auf Verdacht ein INSERT und prüft dabei auf Primärschlüsselverletzungsfehler, woraufhin man ein UPDATE nachschiebt. Dieses Vorgehen empfiehlt sich für Prozesse, die in der Regel einen Datensatz hinzufügen. Für vorwiegend ändernde Prozesse kann man es andersrum angehen, indem man ein UPDATE macht, die Affected Rows prüft und gegebenenfalls ein INSERT hinterherschiebt. Für die Affected Rows muss man aber die Wirkung das Flag CLIENT_FOUND_ROWS berücksichtigen, das sich mit PHP nur unter Verwendung von mysqli_real_connect() beeinflussen lässt.

                      Lo!

  2. Hi!

    ist es moeglich die GET-Veriablen

    So etwas gibt es nicht - HTTP kennt keine Variablen - Du meinst Parameter.

    irgendwie zu verschluesseln?

    Ja, was sollte dagegen sprechen?

    so das aus ?id=55 dann etwas wie ?id=b53b3a3d6ab90ce0268229151c9bde11 wird.
    Das ware dann jetzt der MD5-Hash dazu

    Was genau willst Du erreichen?
    Sicherheit offensichtlich nicht...

    off:PP

    --
    "You know that place between sleep and awake, the place where you can still remember dreaming?" (Tinkerbell)