Ankündigung

Einklappen
Keine Ankündigung bisher.

Problem bei Ver-entschlüsselung

Einklappen

Neue Werbung 2019

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

  • Problem bei Ver-entschlüsselung

    Hallo,
    ich will Daten verschlüsseln und in die Datenbank schreiben.
    Daten verschlüsseln funktioniert auch und mache ich so:
    PHP-Code:
    $test3=base64_encode(str_rot13($test)) 
    Beim Auslesen aus der Datenbank wandle ich das ganze wieder zurück mit:
    PHP-Code:
    $test4=str_rot13(base64_decode($test3)) 
    Lasse ich mir das mit echo ausgeben, steht in $test4 genau das drin, was eigentlich drin stehen soll, mach ich aber einen if-vergleich der beiden variablen, stimmt das ergebnis nicht überein.
    An was könnte dass denn liegen??

  • #2
    Naja lass dir mal beide Werte mit var_dump() ausgeben. Dann siehst du den Datentyp und die Länge der Werte, vlt. ist ja an einem nnoch nen Leerzeichen mehr dran ... und das dort ist nicht wirklich verschlüsseln, das bekommt jeder nach nen paar Minuten probieren raus.

    Kommentar


    • #3
      Was für Daten kommen denn aus der Datenbank? Alphanumerische? Nur Zahlen? Nur Buchstaben?

      Kommentar


      • #4
        @Flor1an: Hmm, da muss ich dir recht geben. Jeder der nur n bisserl php kann, kann das mit etwas spielerei wieder entschlüsseln. Es gibt da ja noch die crypt-Methode oder wie die heißt, damit komme ich aber überhaupt nicht zurecht. Mein Passwort habe ich ja mit md5 verschlüsselt. Aber wie verschlüssele ich dann sensible Daten? Ich arbeite gerade an einer Datenbank, in der sich arbeitssuchende Personen registrieren und ein Profil hinterlegen können. Diese wird dann natürlich sehr sensible Daten enthalten. Mit md5 verschlüsseln kann ich die allerdings nicht, weil Firmen die Möglichkeit haben sollen, sich bestimmte Daten ansehen zu können.

        Kommentar


        • #5
          http://www.php.de/datenbanken/75132-...ung-mysql.html

          MD5 ist ein Hashverfahren, base64 eine Kodierungsform und rot13 ein Substitutionspattern aus der Steinzeit. Du solltest da wirklich etwas genauer in deinen Formulierungen sein und darauf achten, dass du nicht nur obfuscating betreibst, sondern auch wirkliche Sicherheit herstellst. Jedes Skriptkiddie wird bei Daten, die aussehen als wären sie schlecht "verschlüsselt" mit den üblichen Verdächtigen bearbeiten (urlencode, rot13, base64, gzcompress, ..).

          Kommentar


          • #6
            @Chrisanke für den hinweis, das ist mir nun auch schon klar geworden. Ich programmiere seit rund 15 Jahren, allerdings mit vb, und da hab ich mir über sowas noch nie Gedanken machen müssen. Nun versuche ich mich eben an php und da bin ich teilweise ganz schön am verzweifeln. Ich habe mir zum Beispiel in vb eine wirklich sehr effektive Verschlüsselungsroutine programmiert, mit der ich jeden String mit passwort versehen kann usw.. Hab auch schon versucht, das in php umzuschreiben, dafür sind allerdings meine php-Kenntnisse zu mies.

            Kommentar


            • #7
              Und sehr viel mehr Sicherheit bietet es dir auch nicht die Daten in der DB verschlüsselt abzulegen. Klar wer an die DB kommt kann damit nicht viel anfangen, wer allerdings zu deinem PHP Skript kommt hat schon gewonnen. Und da beides meist auf dem selben Server liegt bzw. wenn es eine Sicherheitslücke gibt mit dem sich ein Angreifer Zugriff auf deinen Server verschaffen kann kommt er sicherlich an DB und PHP ran ...

              Was du also machst ist mehr oder weniger trügerische Sicherheit, "Daten verschlüsselt in der Datenbank" hört sich dann toll an, ist es aber nicht unbedingt. Wenn es wirklich so sicherheitskritische Daten sind solltest du dir definitiv nen Profi engagieren, alles andere wäre Fahrlässigkeit!

              Kommentar


              • #8
                Zitat von djsky01 Beitrag anzeigen
                Ich habe mir zum Beispiel in vb eine wirklich sehr effektive Verschlüsselungsroutine programmiert
                Das ist halt relativ. Wenn die Daten in deiner DB wertvoll genug sind, wird auch das jemand knacken, es sei denn du bist eine Koryphäe auf dem Gebiet der Ver-/Entschlüsselung Ich mein vor 60 Jahren hat ein Typ fast ohne Computer die Enigma geknackt, wie schwer im Vergleich dazu kann dein Algorithmus schon sein? Und für genug Kreditkartendaten findet sich schon jemand in Russland oder den Philippinen, der deinen Code knackt xD Naja, weißt ja wie ichs mein - selber ne Verschlüsselung bauen is käse, auch wenns Spass macht und der Kollege kein Schimmer hat wies funktioniert.

                Kommentar


                • #9
                  Ja baue nie selbst eine Verschlüsselungsfunktion! Schließlich gibt es AES auf allen Platformen und damit fährst du definitiv sicherer als mit jeder eigenen Verschlüsselung.

                  Kommentar


                  • #10
                    <witz>
                    Ach ja und rot13 IMMER 2 mal anwenden ist dann doppelt so sicher
                    </witz>

                    Kommentar


                    • #11
                      @robo47: Der war gut

                      Kommentar


                      • #12
                        wie die Zettel mit "bitte wenden" auf beiden Seiten ... wer 2x dreht hats drauf =)

                        Kommentar

                        Lädt...
                        X