Gleiche Verschlüsselung in PHP und AuotIt

  • Hallo Community!

    Das hab ich vor:
    einen String mit Autoit verschlüsseln
    ihn über ein formular an einen PHP-Script weitergeben
    PHP entschlüsselt den String
    und arbeitet damit...

    nur müssen die beiden Ent- und Verschlüsselungsfunktionen der beiden Sprachen die gleichen Resultate erzielen...
    _StringEncrypt wäre ideal, leider ist das keine offizielle (soweit ich weiß?) verschlüsselungsmethode und hat somit kein pendant in PHP...

    könnt ihr mir helfen?
    Viele Grüße,
    R4lf

    Einmal editiert, zuletzt von r4lf (12. März 2011 um 23:15)

  • Du könntest in AutoIt per

    [autoit]

    _Crypt_HashData($sPassword, $CALG_MD5)

    [/autoit]

    Deine Daten per MD5 verschlüsseln. Dese kannst du in einer Datenbank hinterlegen, und mithilfe von PHP wieder auslesen. Natürlich könntest du entweder eine der vielen Decrypter von MD5 nehmen um an den Ausgangswert heranzukommen, du kannst aber auch mit dem Hash weiterarbeiten.

    Sprich: für einen normalen Login würde es reichen.

    PS: Du könntest die unverschlüsselten Daten doch auch über eine verschlüsselte HTTPS Verbindung hochladen, damit dein PHP so weitermacht oder?

  • Deine Daten per MD5 verschlüsseln. Dese kannst du in einer Datenbank hinterlegen, und mithilfe von PHP wieder auslesen. Natürlich könntest du entweder eine der vielen Decrypter von MD5 nehmen um an den Ausgangswert heranzukommen, du kannst aber auch mit dem Hash weiterarbeiten.


    Mit MD5 kann man Daten nur Hashen. Wenn man etwas Hasht, kann man es nicht zurückrechnen.
    Außerdem ist MD5 veraltet. Für Kennwörter sollte man gesalzene SHA-256 Hashes benutzen.

    Magnus

  • Weil es veraltet ist, habe ich es dir auch vorgeschlagen!

    MD5 Decrypter gibt es bei google wie Sand am Meer, so kannst du doch über das PHP Script auch gleich wieder mithilfe dieser Seiten wieder Decrypten.

    Wieso nimmste nicht einfach ne verschlüsselte Verbindung? :D

  • danke für die schnellen Antworten ;)

    @AfterNight: ...leider bringt mir das hashen nicht viel (hab ich auch schon überlegt), da ich individuelle daten senden muss und sie somit nicht in einer datenbank hinterlegen kann....

    ähm...https...ich hab nur einen freehost (000webhost.com), soweit ich weiß können die kein https....

    Magnus: ich verwende meist einen salted MD5, das ist doch auch unknackbar, oder? wozu dann ein SHA-Hash? Was ist da der Vorteil?

  • @AfterNight: MD% ist ein Hash-Algorithmus. Der lässt sich nicht eindeutig zurückrechnen. Man kann mit viel Aufwand zwar EINE mögliche Lösung finden, aber man weiß nicht, ob das die urspünglichen Daten sind.

    Wofür gibt es echte verschlüsselungsalgorithmen und in AutoIt dafür _Crypt_EncryptData. Mindestens einen der Algorithmen wirst du auch in PHP finden können:
    $CALG_3DES $CALG_AES_128 $CALG_AES_192 $CALG_AES_256 $CALG_DES $CALG_RC2 CALG_RC4
    Edit: Es geht auf jeden Fall, wen MCrypt vorhanden ist: http://www.php.net/manual/en/mcrypt.ciphers.php

  • @AfterNight: ...leider bringt mir das hashen nicht viel (hab ich auch schon überlegt), da ich individuelle daten senden muss und sie somit nicht in einer datenbank hinterlegen kann....

    ähm...https...ich hab nur einen freehost (000webhost.com), soweit ich weiß können die kein https....

    Achso, ich bin davon ausgegengen, dass du einen eigenen Webserver hast. Kleiner Tipp am Rande: Wieso wollen die Hoster wohl nichts für den Webspace haben?
    Ob du mit Geld oder Daten bezahlst ist denen eigendlich egal, da bringt auch eine Verschlüsslung nichts...

    PS: Webspace bekommste schön für weniger als 1€ im Monat :party:

  • Das man einen MD5 Hash nicht direkt Decrypten kann ist mir klar, aber es gibt riesige Datenbanken, die sehr viele Kombinationen gespeichert haben. Wenn dumit Hilfe dieser Seiten etwas Decryptest, denn suchen diese legendlich nach einem Schlüssel in deren Datenbank :D

  • @progandy: UNGLAUBLICH...ich habs echt geschafft _crypt_encryptData zu übersehen...und mit mcrypt_encrypt in PHP gibt es zu fast allen dieser Algorithmen auch eine Impementierung...
    Nur wo hast du die Namen der Konstanten her? sind die in constants.au3 definiert? in der hilfe stehen die nicht....
    Danke!

    EDIT: ujj, ihr wart wieder mal schneller als ich im mcrypt-finden ;)
    danke!

  • Die Konstanten stehen in der Crypt.au3. Ich weiß nicht, warum die in der Hilfe fehlen.

  • Das man einen MD5 Hash nicht direkt Decrypten kann ist mir klar, aber es gibt riesige Datenbanken, die sehr viele Kombinationen gespeichert haben. Wenn dumit Hilfe dieser Seiten etwas Decryptest, denn suchen diese legendlich nach einem Schlüssel in deren Datenbank :D

    Sobald du es im Salt spricht bsw. noch mit der UserID verbindest bringt dir dies nix.

    bsw. so :

    md5(md5(UserID) & Passwort)

    Das ist wohl sehr sicher, ob md5 veraltet ist oder nicht

    Das finden von Rechtschreibfehlern muss sofort und unverzüglich dem Autor gemeldet werden. Das eigennützige Verwenden dieser Rechtschreibfehler ist strengstens untersagt und kann mit Freiheitsenzug bestraft werden.

  • Magnus: ich verwende meist einen salted MD5, das ist doch auch unknackbar, oder? wozu dann ein SHA-Hash? Was ist da der Vorteil?

    Sobald du es im Salt spricht bsw. noch mit der UserID verbindest bringt dir dies nix.
    bsw. so :

    PHP
    md5(md5(UserID) & Passwort)


    Das ist wohl sehr sicher, ob md5 veraltet ist oder nicht


    Es kommt immer auf die Geheimhaltung an. Wenn jmd. sein Hashing- und Salzungsverfahren veröffentlicht, und jmd. an die Hashes kommt ist alles knackbar. (Evt. aber mit viel, viel Zeit...)

    MD5 Decrypter gibt es bei google wie Sand am Meer, so kannst du doch über das PHP Script auch gleich wieder mithilfe dieser Seiten wieder Decrypten


    So gennante Rainbow Tables. Aber alle Kennwörter haben die nicht ;)

    Magnus