Ankündigung

Einklappen
Keine Ankündigung bisher.

Verschlüsseln. Endschlüsseln ?

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Verschlüsseln. Endschlüsseln ?

    Hallo,

    Ich möchte Passwörter mit Triple DES oder RC4 verschlüsseln.
    Dürfte ja mit PHP kein problem sein.

    Benutzer der DB sollen später mit Access über ODBC auf die Datenbank gucken.

    Gibts ne Möglichkeit mit Access diese wieder zu entschlüsseln ?

    Es soll Möglich sein das die später auch eigene Passwörter erstellen können.

    Gruss,

    Werner
    * * * * COMMODORE C64 BASIC V2 * * * *
    64K RAM SYSTEM 38911 BASIC BYTES FREE
    READY

  • #2
    Hallo Werner.

    Wenn du in PHP (und jeder anderen Programmiersprache) einen String mittels einer Funktion wie zum Beispiel crypt() oder md5() oder ähnlichen verschlüsselst, kannst du den String nicht mehr entschlüsseln. Da könnte ja jeder kommen.
    Du müsstest dir schon einen eigenen Verschlüsselungsalgorithmus schreiben. Von mir aus Caesar oder sowas.

    Gruß,
    Andreas

    Kommentar


    • #3
      Re: Verschlüsseln. Endschlüsseln ?

      Zitat von Solitaer
      Gibts ne Möglichkeit mit Access diese wieder zu entschlüsseln ?
      Was hat das mit PHP zu tun?
      Du musst halt unterscheiden zwischen Verschlüsselung und Hash-Code-Erstellung. Dazu mehr in Google.

      Kommentar


      • #4
        hm?

        Aber PHP bietet doch die Anbindung mittels
        MCRYPT.

        Dort wähle ich einen eigensgewählten KEY
        und eine Verschlüsslungsmethode und
        kann dann nach belieben ver- und endschlüsseln.

        Ich will in Access nur die Möglichkeit bieten
        das wieder normal anzeigen zu lassen :

        Hier mal ein kleiner PHP auszug :
        Code:
        $key = "jgkkhgttgh";
        $input = "TEST Verschlüsslungstest !";
        $td = mcrypt_module_open (MCRYPT_TripleDES, "", MCRYPT_MODE_ECB, "");
        $iv = mcrypt_create_iv (mcrypt_enc_get_iv_size ($td), MCRYPT_RAND);
        mcrypt_generic_init ($td, $key, $iv);
        $encrypted_data = mcrypt_generic ($td, $input);
        mcrypt_generic_deinit ($td);
        echo $encrypted_data;
        mcrypt_generic_init ($td, $key, $iv);
        $decrypted_data = mdecrypt_generic ($td, $encrypted_data);
        mcrypt_generic_deinit ($td);
        echo "
        
        ";
        echo $decrypted_data;
        Das klappt ziemlich gut.

        Ich frage mich nur wie ich diese Daten in Access sichtbar machen kann ? Kann ich nicht via VBA auf eine PHP Funktion zugreifen ? Das ganze spielt sich eh auf einem Server ab ?

        Wenn ich die Frage in ein VBA Board stelle sagen die : Warum stellst Du die Frage nicht in einem PHP Board.

        Gruss,

        Werner
        * * * * COMMODORE C64 BASIC V2 * * * *
        64K RAM SYSTEM 38911 BASIC BYTES FREE
        READY

        Kommentar


        • #5
          Du musst zu allererst mal eine Verschlüsselungsmethode finden, die von beiden Sprachen unterstützt wird.

          Wenn deine Texte nicht allzu lang sind, könntest du auch mit VBA eine Webanfrage an PHP stellen, z.B.

          decrypt.php?key=<KEY>&encrypted_string=<STRING>

          Und PHP printet dann die Ausgabe, die du dann vielleicht auslesen kannst. Ist aber nur ne Idee, kenne mit mit VBA (Visual Basic? *g*) überhaupt nicht aus.

          Kommentar


          • #6
            ok,
            Konzept: PW verschlüsseln mit was auch immer.
            Beispiel: Schlüssel md5

            In PHP einfach denn es gibt eine Funktion
            PHP-Code:
            <?php
            $cryptedPass 
            md5($pass);
            ?>
            Das tolle daran ist, man bracuht das PW gar nicht zu entschlüsseln um es zu vergleichen.
            Also das '$cryptedPass' steht in der DB dann kommten Daten von eiem HTTP-Frmular.
            PHP-Code:
            <?php
            $cryptedPass 
            gibMirDasPasswordAusDerDatenbankVon($_REQUEST['user']);

            if(
            $cryptedPass == md5($_REQUEST['pass']) {
               echo 
            'Passwort is richtig!';
            } else {
                echo 
            'Netter Versuch.';
            }
            ?>
            Du vergleichst also nur den Schlüssel des verschlüsselten Passwords aus der DB mit dem Schlüssel des übergebenen übergebenen Passwords.

            Gruß
            Der Desian
            Wenn dich was ankotzt, machs besser.

            Kommentar


            • #7
              Er will ja gerade wieder entschlüsseln.

              Kommentar


              • #8
                Das kann ja net gehen wär ja auch etwas easy^^

                Evtl mit John the Ripper aber ich glaube das ist nicht gerade passen

                Kommentar


                • #9
                  Ehrlich gesagt kenne ich Triple DES oder RC4 nicht und weiß deshalb nicht, ob das Verschlüsselungs- oder Hash-Code-Algorithmen sind.
                  Aber er fragt ja offenbar nach einem Entschlüsselungsverfahren.

                  Dass jemand Passwörter aber im Klartext so einfach sehen kann ist ganz schlechter Stil und widerspricht vermutlich auch geltendem Recht (Datenschutzbestimmungen).

                  Kommentar


                  • #10
                    Bei den meißten Funktionen, die man zum Verschlüsseln von Strings verwendet steht es meißt in der Beschreibung der entschprechenden Funktion.
                    Wo's nicht steht kann man davon ausgehn, dass es ursprünglich nicht gedacht ist, zu entschlüsseln.
                    Ich persönlich würde dann einfach die nächste verwendbare Funktion suchen, wo's dann steht.

                    Hier habe ich einfach vermutet, dass es sich um eine Authentifizierung handelt, da es um Passworte in einer DB geht. Gibt sonst nicht so viele Möglichkeiten.
                    Da ich Triple DES oder RC4 noch nicht verwendet habe, wählte ich oben genanntes Beispiel.
                    Da ich gern mal das Problem von alternativen Blickrichtungen betrachte habe ich eine beschrieben in der Hoffnung dass es hilft.
                    Entscheiden wird das der Fragesteller indem er meinen Beitrag entweder für Hilfreich erachtet, weitere Fragen hat, etwas klarstellt wegen 'falsch verstanden' oder ihn einfach ignoriert.
                    Wenn dich was ankotzt, machs besser.

                    Kommentar


                    • #11
                      Mit M$ Access ansich kann man sowieso nicht entschlüsseln, da es sich hierbei lediglich um einen Datenbank-Manager handelt. Wenn, dann im höchsten Falle mit VB(A).

                      Es sollte auf jeden Fall möglich sein, mittels VB(A) und einer ODBC-Schnittstelle den verschlüsselten String aus der Datenbank auszulesen. Ob man den String allerdings so einfach entschlüsseln kann weiß ich nicht.

                      Jetzt stellt sich mir aber eine Frage:
                      Wozu möchtest du einen String verschlüsselt in eine Datenbank schreiben, wenn du ihn eh wieder entschlüsselst? Das hat doch dann gar keinen Sinn mehr (imho).

                      Kommentar


                      • #12
                        RC4 <-> Arcfour
                        http://de.php.net/mcrypt
                        Mcrypt ciphers
                        ...
                        MCRYPT_3DES
                        MCRYPT_ARCFOUR_IV (libmcrypt > 2.4.x only)
                        MCRYPT_ARCFOUR (libmcrypt > 2.4.x only)
                        ...
                        MCRYPT_DES
                        Werden also beide unterstützt und sind keine Hashwert Methoden.

                        Zitat von ChiefRebelAngel
                        Jetzt stellt sich mir aber eine Frage:
                        Wozu möchtest du einen String verschlüsselt in eine Datenbank schreiben, wenn du ihn eh wieder entschlüsselst? Das hat doch dann gar keinen Sinn mehr (imho).
                        Vielelicht soll die Datenbank samt Daten ausgeliefert erden, aber einige Daten sollen nicht imer Klartext zu lesen sein.
                        Acdcessdatenbanken kann man doch irgendwie schon von Hause aus komplett verschlüsselt ausliefern .?.

                        Kommentar


                        • #13
                          Wenn du mit VBA Visual Basic meinst, wovon ich jetzt einfach mal ausgehe, dann nutzé doch einfach WebRequest.
                          Erstelle ein Php-file welches die Datenbank ausliest und gib das Ergebnis über echo aus.
                          Verwende dabei eine bestimmte Syntax.
                          Dann startest du über WebRequest eine Anfrage an das Dokument und liest die Response aus.
                          Jetzt kannst du die Daten in VB verarbeiten.
                          Ich weiß leider nicht genau, ob das jetzt die Lösung für dein Problem ist, aber ich hoffe es hilft dir weiter...
                          Gruß Flo
                          Die schönsten Formulierungen sind üblicherweise auch die einfachsten. ADAM SMITH

                          Kommentar

                          Lädt...
                          X