Γεννήτρια Bcrypt
Δημιουργήστε και επαληθεύστε hash κωδικών bcrypt online. Ρυθμιζόμενος παράγοντας κόστους, ενσωματωμένο αλάτι, προεπισκόπηση hash σε πραγματικό χρόνο. Όλη η επεξεργασία εκτελείται τοπικά στο πρόγραμμα περιήγησής σας.
Τι είναι bcrypt;
Το bcrypt είναι μια συνάρτηση κατακερματισμού κωδικών που σχεδιάστηκε από τους Niels Provos και David Mazières, βασισμένη στο cipher Blowfish. Έχει σχεδιαστεί ειδικά για ασφαλή αποθήκευση κωδικών και είναι ένας από τους πιο διαδεδομένους αλγόριθμους κατακερματισμού κωδικών στον κόσμο.
Πώς λειτουργεί bcrypt;
Το bcrypt λαμβάνει έναν κωδικό και ένα αλάτι ως είσοδο, εκτελεί μια ακριβή διαδικασία ρύθμισης κλειδιού (Eksblowfish) που παράγει ένα hash σταθερού μήκους. Το hash περιλαμβάνει το αναγνωριστικό αλγορίθμου, τον παράγοντα κόστους, το αλάτι και την πραγματική τιμή hash.
Τι είναι ο παράγοντας κόστους στο bcrypt;
Ο παράγοντας κόστους είναι ένας αριθμός από 4 έως 31 που καθορίζει πόσες επαναλήψεις ρύθμισης κλειδιού εκτελούνται. Κάθε αύξηση διπλασιάζει τον χρόνο υπολογισμού. Κόστος 10 σημαίνει 2^10 = 1024 επαναλήψεις. Συνιστώμενες τιμές είναι 10-12 για τις περισσότερες εφαρμογές.
Τι είναι ένα αλάτι και γιατί είναι σημαντικό;
Ένα αλάτι είναι μια τυχαία τιμή 128-bit μοναδική για κάθε hash κωδικού. Εμποδίζει τους επιτιθέμενους να χρησιμοποιήσουν προϋπολογισμένους πίνακες ουράνιου τόξου και διασφαλίζει ότι πανομοιότυποι κωδικοί παράγουν διαφορετικά hash. Το bcrypt δημιουργεί αυτόματα το αλάτι και το ενσωματώνει στο hash.
Το bcrypt είναι ακόμα ασφαλές το 2025;
Ναι, το bcrypt παραμένει ένας από τους συνιστώμενους αλγόριθμους κατακερματισμού κωδικών. Αν και υπάρχουν νεότεροι αλγόριθμοι όπως το Argon2, το bcrypt θεωρείται ασφαλές όταν χρησιμοποιείται με κατάλληλο παράγοντα κόστους (12 ή υψηλότερο).
Ποιο είναι το μέγιστο μήκος κωδικού για bcrypt;
Το bcrypt έχει μέγιστο μήκος εισόδου 72 byte. Κωδικοί μεγαλύτεροι από 72 byte αποκόπτονται αθόρυβα. Για μεγαλύτερους κωδικούς, εξετάστε το pre-hashing με SHA-256 πριν εφαρμόσετε bcrypt.
Πώς συγκρίνεται bcrypt με MD5, SHA-256 και άλλες συναρτήσεις hash;
Σε αντίθεση με τα MD5 και SHA-256 που σχεδιάστηκαν για ταχύτητα, το bcrypt είναι σκόπιμα αργό και υπολογιστικά ακριβό. Οι συναρτήσεις hash γενικού σκοπού μπορούν να υπολογιστούν δισεκατομμύρια φορές το δευτερόλεπτο, κάνοντάς τες ευάλωτες σε επιθέσεις brute-force.
Ποια είναι η μορφή hash bcrypt;
Ένα hash bcrypt ακολουθεί τη μορφή: $2b$cost$salt+hash. Παράδειγμα: $2b$10$N9qo8uLOickgx2ZMRZoMyeIjZAgcfl7p92ldGxad68LJZdL17lhWy. Το πρόθεμα $2b$ αναγνωρίζει την έκδοση αλγορίθμου, ακολουθούμενο από τον παράγοντα κόστους, αλάτι 22 χαρακτήρων και hash 31 χαρακτήρων.
Ποια είναι η διαφορά μεταξύ $2a$, $2b$ και $2y$;
Αυτά είναι αναγνωριστικά έκδοσης bcrypt. Το $2a$ είναι η αρχική έκδοση, το $2b$ διορθώνει ένα μικρό πρόβλημα χειρισμού μήκους κωδικού στο OpenBSD, και το $2y$ είναι η ειδική παραλλαγή PHP.
Είναι ασφαλές να χρησιμοποιώ μια online γεννήτρια bcrypt;
Όταν η επεξεργασία εκτελείται εξ ολοκλήρου στο πρόγραμμα περιήγησής σας (πλευρά πελάτη), είναι απολύτως ασφαλές. Κανένα δεδομένο κωδικού δεν μεταδίδεται σε κανέναν διακομιστή. Αυτό το εργαλείο επεξεργάζεται τα πάντα τοπικά χρησιμοποιώντας JavaScript.
Πώς να επιλέξω τον σωστό παράγοντα κόστους;
Ο παράγοντας κόστους πρέπει να είναι όσο το δυνατόν υψηλότερος διατηρώντας τη δημιουργία hash αποδεκτά γρήγορη. Ένας καλός κανόνας: επιλέξτε το κόστος όπου το hashing παίρνει περίπου 250-500ms στον διακομιστή σας.
Μπορεί bcrypt να χρησιμοποιηθεί για κρυπτογράφηση δεδομένων;
Όχι, bcrypt είναι μονόδρομη συνάρτηση hash, όχι αλγόριθμος κρυπτογράφησης. Δεν μπορεί να αντιστραφεί για να ανακτηθεί ο αρχικός κωδικός. Έχει σχεδιαστεί αποκλειστικά για επαλήθευση κωδικών.
Γιατί bcrypt είναι αργό εκ σχεδιασμού;
Το bcrypt είναι σκόπιμα αργό για να κάνει τις επιθέσεις brute-force και λεξικού υπολογιστικά ακριβές. Ενώ μια κανονική συνάρτηση hash μπορεί να επεξεργαστεί εκατομμύρια κωδικούς το δευτερόλεπτο, bcrypt επεξεργάζεται μόνο μερικές εκατοντάδες.
Πώς επαληθεύω έναν κωδικό έναντι hash bcrypt;
Για επαλήθευση, εξάγετε το αλάτι και τον παράγοντα κόστους από το αποθηκευμένο hash, εκτελέστε bcrypt με τις ίδιες παραμέτρους στον κωδικό εισόδου και συγκρίνετε το hash αποτελέσματος με το αποθηκευμένο hash. Αν ταιριάζουν, ο κωδικός είναι σωστός.