Aντιστροφή του md5.

Σε αυτή την περιοχή μπορείτε να βρείτε ή να αναζητήσετε πληροφορίες σχετικές με την PHP

Συντονιστές: WebDev Moderators, Super-Moderators, PHP Moderators

Απάντηση
nect
Δημοσιεύσεις: 55
Εγγραφή: 17 Δεκ 2005 21:21

Aντιστροφή του md5.

Δημοσίευση από nect » 24 Φεβ 2008 00:05

θα ήθελα να ρωτήσω αν υπάρχει τρόπος αντιστροφής του md5.
Δηλαδή να διαβάσουμε το καταχωρημένο password αποκωδικοποιόντας την md5 καταχώρηση, ώστε να στείλουμε το password σε κάποιο χρήστη που το ξέχασε.

Άβαταρ μέλους
cherouvim
Script Master
Δημοσιεύσεις: 3137
Εγγραφή: 13 Ιούλ 2005 22:56
Τοποθεσία: Athens, Greece
Επικοινωνία:

Aντιστροφή του md5.

Δημοσίευση από cherouvim » 24 Φεβ 2008 00:29

Όχι. Το md5 είναι one way hashing.

Αντί για "remind me my password" θα φτιάξεις "reset my password" λειτουργία.

nect
Δημοσιεύσεις: 55
Εγγραφή: 17 Δεκ 2005 21:21

Aντιστροφή του md5.

Δημοσίευση από nect » 24 Φεβ 2008 00:38

Θέλω η χρήστες να μπορούν να παίρνουν τα στοιχειά σύνδεσης αν τα ξεχάσουν απλά γράφοντας το e-mail τους στην σχετική φόρμα υπάρχει κάτι που θα με βοηθούσε.

Άβαταρ μέλους
mrpc
WebDev Moderator
Δημοσιεύσεις: 3393
Εγγραφή: 03 Μάιος 2000 03:00
Τοποθεσία: Εξάρχεια
Επικοινωνία:

Aντιστροφή του md5.

Δημοσίευση από mrpc » 24 Φεβ 2008 01:03

Όχι. Θα πρέπει να αποθηκεύεις τα password με άλλο τρόπο.

Άβαταρ μέλους
Pavel
Honorary Member
Δημοσιεύσεις: 1046
Εγγραφή: 08 Αύγ 2003 00:05
Τοποθεσία: UK

Aντιστροφή του md5.

Δημοσίευση από Pavel » 24 Φεβ 2008 01:32

Όχι ότι θα σου χρησιμεύσει, αλλά υπάρχει το
http://gdataonline.com/

Αλλά να αντιστρέψεις το md5 χλωμό.
Εσύ είσαι τρελός.

Άβαταρ μέλους
AAT
Δημοσιεύσεις: 379
Εγγραφή: 23 Αύγ 2007 16:31
Τοποθεσία: Lemesos, Limassol
Επικοινωνία:

Aντιστροφή του md5.

Δημοσίευση από AAT » 27 Φεβ 2008 22:48

mporeis na to filakseis me base64 alla ginete decrypt h alios isos kaneis ena idos dikoy soy hash opoy ta gramata antistixoyn se alla....

alexsoft

Aντιστροφή του md5.

Δημοσίευση από alexsoft » 27 Φεβ 2008 23:49

nect έγραψε:θα ήθελα να ρωτήσω αν υπάρχει τρόπος αντιστροφής του md5.
Δηλαδή να διαβάσουμε το καταχωρημένο password αποκωδικοποιόντας την md5 καταχώρηση, ώστε να στείλουμε το password σε κάποιο χρήστη που το ξέχασε.
Αντιστροφή του MD5 ξέχασε την.

Η μέθοδος αυτή είναι όμως και πιο αξιόπιστη σε σχέση με κωδικοποιήσεις που μπορούν να αντιστραφούν αλλά σπάνε εύκολα από hackers.

Λύσεις

1) Να βάλεις μια επιλογή "Ξέχασα τον κωδικό μου" και να φτιάξεις κώδικα παραγωγής νέου κωδικού που πριν κρυπτογραφηθεί θα αποστέλλεται με email στον χρήστη.
Η ίδια αποστολή μπορεί να γίνει και κατά την εγγραφή. Ο χρήστης να έχει την δυνατότητα αλλαγής του νέου κωδικού

2) Να αποθηκεύεις σε ένα πίνακα το username και το password και να το στέλνεις από εκεί. Αυτό όμως ενέχει κινδύνους εάν δεν διασφαλίσεις ότι υπάρχει η μέγιστη ασφάλεια στο site.

nect
Δημοσιεύσεις: 55
Εγγραφή: 17 Δεκ 2005 21:21

Aντιστροφή του md5.

Δημοσίευση από nect » 29 Φεβ 2008 16:06

Σας ευχαριστώ όλους σας, πολύ!

Άβαταρ μέλους
alexandr0s
Δημοσιεύσεις: 1064
Εγγραφή: 25 Απρ 2006 17:16
Τοποθεσία: localhost
Επικοινωνία:

Aντιστροφή του md5.

Δημοσίευση από alexandr0s » 29 Φεβ 2008 19:25

Θα διαφωνήσω με την αλλαγή του κωδικού και την αποστολή σε email. Αυτό μπορεί να δημιουργήσει προβλήματα σε χρήστες αν κάποιος κακόβουλα βάλει το email τους και κάνει reset το κωδικό. Η λύση που υποστηρίζω είναι ο συνδυασμός username και ενός μεγάλου randomstring που θα χρησιμοποιουνται σαν get variables σε κάποια μέθοδο η οποία αφού τα username και randomstring είναι valid θα δίνει στο χρήστη τη δυνατότητα εισαγωγής νέου κωδικού.

Άβαταρ μέλους
cherouvim
Script Master
Δημοσιεύσεις: 3137
Εγγραφή: 13 Ιούλ 2005 22:56
Τοποθεσία: Athens, Greece
Επικοινωνία:

Aντιστροφή του md5.

Δημοσίευση από cherouvim » 29 Φεβ 2008 19:39

alex, το "reset password" functionality δουλεύει με mail confirmation.
You (or someone pretending to be you - from IP xxx.xxx.xxx.xxx) requested to have your password reset. Click here to reset it...

Άβαταρ μέλους
skeftomilos
Script Master
Δημοσιεύσεις: 2888
Εγγραφή: 07 Ιαν 2005 07:22
Τοποθεσία: Αθήνα

Aντιστροφή του md5.

Δημοσίευση από skeftomilos » 02 Μαρ 2008 08:02

Και μετά το κλικ να υποθέσω λαμβάνει δεύτερο email με το νέο κωδικό;

Άβαταρ μέλους
cherouvim
Script Master
Δημοσιεύσεις: 3137
Εγγραφή: 13 Ιούλ 2005 22:56
Τοποθεσία: Athens, Greece
Επικοινωνία:

Aντιστροφή του md5.

Δημοσίευση από cherouvim » 02 Μαρ 2008 10:46

skeftomilos έγραψε:Και μετά το κλικ να υποθέσω λαμβάνει δεύτερο email με το νέο κωδικό;
Ναι. Μπορεί να το δει και στην οθόνη προφανώς, εκείνη τη στιγμή.

Άβαταρ μέλους
skeftomilos
Script Master
Δημοσιεύσεις: 2888
Εγγραφή: 07 Ιαν 2005 07:22
Τοποθεσία: Αθήνα

Aντιστροφή του md5.

Δημοσίευση από skeftomilos » 02 Μαρ 2008 11:33

Χμ, για να δει στην οθόνη το δικό του password και όχι κάποιου άλλου σημαίνει ότι το href του link θα περιέχει κάποιο κωδικό συσχέτισης με το συγκεκριμένο χρήστη (κάποιο hash ή guid). Επιπλέον η σελίδα θα πρέπει να είναι SSL για να μην κασαριστεί στον browser. Φαίνεται να είναι ασφαλές, αλλά μήπως παρόλα αυτά υπάρχει κάποιο ρίσκο;

Άβαταρ μέλους
cherouvim
Script Master
Δημοσιεύσεις: 3137
Εγγραφή: 13 Ιούλ 2005 22:56
Τοποθεσία: Athens, Greece
Επικοινωνία:

Aντιστροφή του md5.

Δημοσίευση από cherouvim » 02 Μαρ 2008 13:12

Ναι. Το action link είναι της μορφής:
/reset-my-password?user-id=55&guid=bbrypJN74iG6kv5T
Και πριν το στείλουμε έχουμε αποθηκεύσει το guid στο user row.

Αν το from users where id=? and guid=? πετύχει (rows returned 1) τότε:
1) Δημιουργούμε νέο pass
2) Στέλνουμε το pass στο χρήστη
3) Εκτυπώνουμε το pass στη σελίδα (προαιρετικά. συνήθως δε το κάνω)
4) Σβήνουμε (null) το guid από το user row

Αν αφαιρέσουμε το βήμα [3] τότε το σύστημα είναι "απαραβίαστο". Ακόμα και αν καταφέρω, brute force, να resetάρω το pass κάποιου, το νέο pass θα πάει στο email του.

Άβαταρ μέλους
skeftomilos
Script Master
Δημοσιεύσεις: 2888
Εγγραφή: 07 Ιαν 2005 07:22
Τοποθεσία: Αθήνα

Aντιστροφή του md5.

Δημοσίευση από skeftomilos » 02 Μαρ 2008 17:46

Νομίζω ότι τα βήματα 2 και 3 είναι αμοιβαία αποκλειόμενα (και τα δύο μαζί είναι πλεονασμός).

Επίσης θα προτιμούσα να υπάρχει στη σελίδα μια POST φορμούλα με κουμπί "Create New Password", μόνο και μόνο για το λόγο ότι δε μου αρέσει να κάνω αλλαγές στο server state με GET requests. Με αυτό τον τρόπο γίνεται περιττό και το βήμα 4, αφού ένα σταθερό guid στον πίνακα των χρηστών είναι πάντα χρήσιμο.

Απάντηση

Επιστροφή στο “PHP Προγραμματισμός”

Μέλη σε σύνδεση

Μέλη σε αυτήν τη Δ. Συζήτηση: Δεν υπάρχουν εγγεγραμμένα μέλη και 1 επισκέπτης