Υπάρχουν 2 τρόποι κωδικοποίησης.
1) το encrypt - decrypt, όπου ένα κείμενο το μετατρέπεις μέσω ενός
αλγορίθμου σε κινέζικα και ύστερα με τον "αντίστροφο" αλγόριθμο το
μετατρέπεις ξανά στο πρωτότυπο κείμενο.
2) το hash αυτό που ουσιαστικά κάνει είναι να μετατρέπει το κείμενο σε
κινέζικα μέσα από μονόδρομο αλγόριθμο. Δεν μπορείς δηλαδή (θεωρητικά)
αν έχεις το hashed κείμενο να το μετατρέψεις στο αρχικό.
Όταν θέλεις να κάνεις logon και επιβεβαίωση κωδικού μέσω hash αυτό που
κάνει το πρόγραμμα είναι να χρησιμοποιεί τον ίδιο μονόδρομο αλγόριθμο
και ύστερα να ελέγχει τα δύο hashed κείμενα (το αποθηκευμένο στην βάση
και αυτό που δίνει ο χρήστης)
Σκέψου το σαν μια συνάρτηση που δίνει το τετράγωνο του αριθμού:
364755343^2 (=1,33046Ε+17)
Το να υπολογίσεις το τετράγωνο είναι πολύ εύκολο. Μπορεί να σου πάρει μερικά λεπτά αν το κάνεις με το χέρι, αλλά αν προσπαθήσεις να υπολογίσεις την ρίζα του αποτελέσματος, πιθανότατα να χρειαστείς αρκετή ώρα.
Φαντάσου τώρα ότι έχεις ένα αριθμό με περισσότερα από 100ψηφία...
Οι hash αλγόριθμοι βέβαια είναι "περισσότερο" μονόδρομοι απ' ότι αυτός του υπολογισμού του τετραγώνου, αυτό ήταν απλά ένα παράδειγμα.
Δεν νομίζω να έχεις πρόβλημα (ακόμα και αν κάνεις SELECT), αρκεί να μην σώζεις πουθενά τον κωδικό. Εγώ τουλάχιστον με SELECT δουλεύω...
Ελπίζω να βοήθησα.