Γεννήτρια TOTP — Ζωντανός Κωδικός Authenticator 2FA
Επικολλήστε ένα μυστικό TOTP σε Base32 και δείτε τον πραγματικό, ζωντανό 6ψήφιο κωδικό authenticator να ανανεώνεται κάθε 30 δευτερόλεπτα — εντελώς εκτός σύνδεσης στον browser σας.
🔒 Επεξεργάζεται εξ ολοκλήρου στο πρόγραμμα περιήγησής σας — τίποτα που εισάγετε εδώ δεν μεταφορτώνεται ποτέ.
Αποτέλεσμα
Αυτό το εργαλείο παράγει πραγματικούς, συμβατούς με τα πρότυπα κωδικούς Time-based One-Time Password (TOTP) από ένα μυστικό Base32, τους ίδιους εξαψήφιους εναλλασσόμενους κωδικούς που εμφανίζουν εφαρμογές όπως το Google Authenticator ή το Authy. Επικολλήστε το μυστικό που σας δόθηκε κατά τη ρύθμιση του ελέγχου ταυτότητας δύο παραγόντων — το ίδιο αλφαριθμητικό που συνήθως κρύβεται πίσω από έναν κωδικό QR — και παρακολουθήστε τον ζωντανό κωδικό να μετρά αντίστροφα και να ανανεώνεται κάθε 30 δευτερόλεπτα, ακριβώς όπως θα έκανε μέσα σε μια εφαρμογή τηλεφώνου. Προορίζεται για δοκιμή και επαλήθευση μυστικών 2FA που σας ανήκουν ή ελέγχετε: αποσφαλμάτωση μιας ροής σύνδεσης που κατασκευάζετε, επιβεβαίωση ενός εφεδρικού κωδικού πριν πετάξετε ένα QR παροχής ή διπλός έλεγχος ότι ένα μυστικό πληκτρολογήθηκε σωστά.
Κάτω από το καπό, πρόκειται για μια γνήσια υλοποίηση του RFC 6238 (TOTP) βασισμένη στο RFC 4226 (HOTP) και όχι για μια επιφανειακή αντίστροφη μέτρηση. Το μυστικό Base32 αποκωδικοποιείται κατά RFC 4648 σε ακατέργαστα bytes κλειδιού, ο τρέχων χρόνος Unix διαιρείται με το χρονικό βήμα για να παραχθεί ένας κινούμενος μετρητής και αυτός ο μετρητής κωδικοποιείται ως buffer 8-byte big-endian. Το εγγενές Web Crypto API του browser (crypto.subtle) υπολογίζει ένα HMAC πάνω από αυτό το buffer με την επιλεγμένη συνάρτηση κατακερματισμού — ο SHA-1 παραμένει η σχεδόν καθολική προεπιλογή για συμβατότητα με υπάρχουσες εφαρμογές authenticator, ενώ οι SHA-256 και SHA-512 προσφέρονται για ρυθμίσεις που υποστηρίζουν τις ισχυρότερες παραλλαγές. Η δυναμική περικοπή του RFC 4226 στη συνέχεια εξάγει τέσσερα bytes από την έξοδο HMAC σε μια μετατόπιση που λαμβάνεται από το τελευταίο byte της, μηδενίζει το ανώτερο bit και ανάγει το αποτέλεσμα modulo 10^6 ή 10^8 για να παραγάγει τον 6ψήφιο ή 8ψήφιο κωδικό — ακριβώς η ίδια αριθμητική που εκτελεί εσωτερικά η εφαρμογή authenticator του τηλεφώνου σας.
Κάθε μέρος της διαδικασίας συμβαίνει τοπικά: δεν υπάρχει στοιχείο διακομιστή, κανένας φάρος αναλυτικών στοιχείων που να μεταφέρει το μυστικό σας και καμία εξωτερική κλήση API οποιουδήποτε είδους. Το κείμενο Base32 που επικολλάτε στο πεδίο αναλύεται απευθείας από JavaScript που εκτελείται στην καρτέλα σας και δεν φεύγει ποτέ από αυτήν. Αυτό το καθιστά έναν ασφαλή τρόπο για γρήγορο έλεγχο ενός μυστικού 2FA σε ένα μηχάνημα που εμπιστεύεστε, αν και όπως με κάθε εργαλείο που αγγίζει υλικό ελέγχου ταυτότητας, θα πρέπει να αποφεύγετε την επικόλληση μυστικών σε κοινόχρηστους ή δημόσιους υπολογιστές και να το χρησιμοποιείτε μόνο για κωδικούς που συνδέονται με λογαριασμούς που σας ανήκουν ή για τους οποίους είστε ρητά εξουσιοδοτημένοι να δοκιμάζετε.
Τα στοιχεία ελέγχου αλγορίθμου, πλήθους ψηφίων και χρονικού βήματος υπάρχουν επειδή οι πραγματικές αναπτύξεις TOTP δεν είναι απόλυτα ομοιόμορφες: οι περισσότερες καταναλωτικές υπηρεσίες χρησιμοποιούν SHA-1 με 6 ψηφία και βήμα 30 δευτερολέπτων, αλλά ορισμένα εταιρικά και προγραμματιστικά εργαλεία εκδίδουν μυστικά SHA-256 ή SHA-512, 8ψήφιους κωδικούς ή μη τυπικά χρονικά βήματα όπως 15 ή 60 δευτερόλεπτα. Η αντιστοίχιση αυτών των ρυθμίσεων με ό,τι καθορίζει ένα URI παροχής ή μια σελίδα εγκατάστασης σας επιτρέπει να αναπαράγετε ακριβώς τον κωδικό που θα εμφάνιζε η εφαρμογή authenticator σας, κάτι που είναι ανεκτίμητο όταν υλοποιείτε τον δικό σας διακομιστή επαλήθευσης TOTP και χρειάζεστε μια αξιόπιστη αναφορά εκτός σύνδεσης για σύγκριση.