Μετάβαση στο περιεχόμενο

Γεννήτρια Τυχαίων Κλειδιών API - Δωρεάν Ασφαλή Κλειδιά 32 Χαρακτήρων

Δημιουργήστε κρυπτογραφικά ασφαλή κλειδιά API άμεσα. Δωρεάν διαδικτυακό εργαλείο παράγει τυχαία αλφαριθμητικά κλειδιά 32 χαρακτήρων για πιστοποίηση. Δημιουργία από την πλευρά του πελάτη, χωρίς αποθήκευση.

Γεννήτρια Κλειδιών API

Τα κλειδιά δημιουργούνται τοπικά στον περιηγητή σας με το Web Crypto API (CSPRNG), χρησιμοποιώντας αμερόληπτη δειγματοληψία απόρριψης. Τίποτα δεν αποστέλλεται σε κανέναν διακομιστή.
Υπολογιστής φόρτωσης...
📚

Τεκμηρίωση

Μια γεννήτρια τυχαίων κλειδιών API είναι ένα εργαλείο που δημιουργεί μια τυχαία συμβολοσειρά γραμμάτων και αριθμών, για χρήση ως κωδικός παρόμοιος με κωδικό πρόσβασης μεταξύ δύο προγραμμάτων υπολογιστή. Αυτή εκτελείται εξ ολοκλήρου μέσα στο πρόγραμμα περιήγησης του επισκέπτη. Επιτρέπει στον χρήστη να επιλέξει μήκος κλειδιού από 8 έως 128 χαρακτήρες, με προεπιλεγμένο μήκος τους 32 χαρακτήρες.

Τι είναι ένα κλειδί API;

Το κλειδί API είναι μια συμβολοσειρά χαρακτήρων που ένα πρόγραμμα στέλνει μαζί με ένα αίτημα, για να αποδείξει ότι επιτρέπεται να χρησιμοποιήσει μια υπηρεσία. Ένας διακομιστής ιστού ελέγχει το κλειδί πριν απαντήσει στο αίτημα. Σε αντίθεση με το όνομα χρήστη και τον κωδικό πρόσβασης, ένα κλειδί API συνήθως προσδιορίζει μια εφαρμογή ή ένα script, και όχι ένα φυσικό πρόσωπο.

Τα κλειδιά λειτουργούν καλύτερα όταν κανείς δεν μπορεί να τα μαντέψει. Μια γεννήτρια που χρησιμοποιεί πραγματική τυχαιότητα αποφεύγει τα μοτίβα που εμφανίζονται σε κλειδιά πληκτρολογημένα από άνθρωπο, όπως επαναλαμβανόμενους χαρακτήρες ή σύντομες, εύκολες στην απομνημόνευση λέξεις.

Πώς λειτουργεί αυτή η γεννήτρια

Το εργαλείο δημιουργεί κάθε κλειδί από ένα σταθερό σύνολο 62 χαρακτήρων: τα 26 κεφαλαία γράμματα A–Z, τα 26 πεζά γράμματα a–z και τα 10 ψηφία 0–9. Για κλειδί μήκους n, επιλέγει n χαρακτήρες από αυτό το σύνολο, έναν κάθε φορά.

Κάθε χαρακτήρας προέρχεται από το Web Crypto API του προγράμματος περιήγησης, συγκεκριμένα από το crypto.getRandomValues(). Πρόκειται για κρυπτογραφικά ασφαλή γεννήτρια τυχαίων αριθμών (CSPRNG), σε αντίθεση με τη Math.random() της JavaScript, η οποία είναι προβλέψιμη και ακατάλληλη για τιμές που σχετίζονται με την ασφάλεια.

Για να επιλέξει έναν δίκαιο χαρακτήρα από 62 επιλογές ενός τυχαίου byte (256 πιθανές τιμές), η γεννήτρια δεν μπορεί απλώς να χρησιμοποιήσει το byte % 62. Επειδή το 256 δεν διαιρείται ακριβώς με το 62, ένα απλό υπόλοιπο θα έκανε τους πρώτους χαρακτήρες του συνόλου ελαφρώς πιθανότερους από τους υπόλοιπους. Το εργαλείο αποφεύγει αυτή την προκατάληψη με τη μέθοδο της δειγματοληψίας με απόρριψη: απορρίπτει κάθε τυχαίο byte που θα προκαλούσε την προκατάληψη και αντλεί ένα καινούργιο. Επομένως, κάθε χαρακτήρας του τελικού κλειδιού έχει ίση και αμερόληπτη πιθανότητα να εμφανιστεί σε κάθε θέση.

Πώς δημιουργείται ένα κλειδί API

  1. Εισαγάγετε μήκος κλειδιού μεταξύ 8 και 128 χαρακτήρων ή διατηρήστε την προεπιλογή 32. Ένας αριθμός εκτός αυτού του εύρους επισημαίνεται και χρησιμοποιείται το πλησιέστερο επιτρεπόμενο μήκος.
  2. Κάντε κλικ στο «Generate». Το κλειδί εμφανίζεται σε πλαίσιο κειμένου, το οποίο δημιουργείται εξ ολοκλήρου στο πρόγραμμα περιήγησης. Κάνοντας κλικ στο πλαίσιο επιλέγεται ολόκληρο το κλειδί.
  3. Κάντε κλικ στο «Copy» για να αντιγράψετε το κλειδί στο πρόχειρο. Ορισμένα προγράμματα περιήγησης ζητούν άδεια την πρώτη φορά.
  4. Κάντε κλικ στο «Regenerate» για να δημιουργήσετε νέο κλειδί με το ίδιο μήκος ή στο «Reset» για να διαγράψετε το κλειδί και να επιστρέψετε στο προεπιλεγμένο μήκος 32.

Κάτω από το κλειδί, το εργαλείο εμφανίζει τρία στοιχεία: το μήκος του κλειδιού σε χαρακτήρες, το μέγεθος του συνόλου χαρακτήρων (πάντα 62) και την εντροπία σε bit.

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

Πώς υπολογίζεται ο αριθμός των πιθανών κλειδιών

Ο αριθμός των διαφορετικών κλειδιών που μπορεί να δημιουργήσει ένα δεδομένο μήκος ακολουθεί έναν απλό τύπο:

N=cnN = c^{n}

όπου N είναι ο αριθμός των πιθανών κλειδιών, c το μέγεθος του συνόλου χαρακτήρων και n το μήκος του κλειδιού.

Το μέγεθος του συνόλου χαρακτήρων είναι πάντα 62 για αυτό το εργαλείο. Για το προεπιλεγμένο μήκος 32:

N = 62³² ≈ 2,27 × 10⁵⁷

Ο αριθμός αυτός εκφράζεται επίσης ως εντροπία, μετρημένη σε bit, με τον τύπο:

H=n×log⁡2cH = n \times \log_{2} c

όπου H είναι η εντροπία σε bit.

Για κλειδί 32 χαρακτήρων: 32 × log₂(62) ≈ 32 × 5,95 ≈ 190,5 bit.

χρόνος δοκιμής κάθε κλειδιού

Ας υποθέσουμε ότι ένας εισβολέας μπορεί να δοκιμάζει ένα δισεκατομμύριο (10⁹) κλειδιά ανά δευτερόλεπτο, με ρυθμό μη ρεαλιστικά υψηλό για οποιοδήποτε πραγματικό σύστημα. Η δοκιμή κάθε πιθανού κλειδιού 32 χαρακτήρων θα απαιτούσε:

2,27 × 10⁵⁷ ÷ 10⁹ = 2,27 × 10⁴⁸ δευτερόλεπτα ≈ 7,2 × 10⁴⁰ έτη

Για σύγκριση, το σύμπαν έχει ηλικία περίπου 1,4 × 10¹⁰ ετών. Η εξαντλητική αναζήτηση κάθε πιθανού κλειδιού δεν αποτελεί πρακτική απειλή σε αυτό το μήκος. Τα μικρότερα κλειδιά μειώνουν γρήγορα αυτόν τον αριθμό: ένα κλειδί 8 χαρακτήρων έχει μόνο 62⁸ ≈ 2,18 × 10¹⁴ πιθανές τιμές, τις οποίες ένας γρήγορος υπολογιστής θα μπορούσε να αναζητήσει μέσα σε λίγες ημέρες.

Γιατί οι εφαρμογές χρησιμοποιούν κλειδιά API

Τα κλειδιά API παρέχουν σε μια υπηρεσία έναν απλό τρόπο να προσδιορίζει ποια εφαρμογή υποβάλλει ένα αίτημα. Αυτό έχει σημασία για μερικούς λόγους.

Έλεγχος ταυτότητας. Ένας διακομιστής μπορεί να απορρίπτει αιτήματα που φτάνουν χωρίς έγκυρο κλειδί, εμποδίζοντας τις περισσότερες περιστασιακές καταχρήσεις.

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

Ανάκληση. Ένα μεμονωμένο κλειδί που έχει παραβιαστεί μπορεί να απενεργοποιηθεί χωρίς να επηρεαστεί κανένας άλλος πελάτης, καθώς κάθε κλειδί είναι ανεξάρτητο.

Τα κλειδιά API είναι απλούστερα στην υλοποίηση από το πρότυπο OAuth 2,0, ένα πρότυπο ελέγχου ταυτότητας που βασίζεται σε προσωρινά, αυτόματα ανανεούμενα διακριτικά. Το OAuth είναι κατάλληλο για δημόσιες υπηρεσίες που διαχειρίζονται προσωπικά δεδομένα χρηστών. Τα κλειδιά API είναι συνηθισμένα σε εσωτερικά εργαλεία, σενάρια και κλήσεις μεταξύ υπηρεσιών, όπου ένα διαπιστευτήριο μακράς διάρκειας είναι αποδεκτό.

Πρακτικές ασφάλειας για κλειδιά API

Ορισμένες πρακτικές μειώνουν τον κίνδυνο διαρροής ενός κλειδιού:

  • Μην αποθηκεύετε κλειδιά στον πηγαίο κώδικα. Το ιστορικό του συστήματος ελέγχου εκδόσεων είναι δύσκολο να διαγραφεί και τα δημόσια αποθετήρια ελέγχονται συνεχώς για εκτεθειμένα διαπιστευτήρια. Αποθηκεύετε τα κλειδιά σε μεταβλητές περιβάλλοντος ή σε διαχειριστή μυστικών.
  • Περιστρέφετε τα κλειδιά περιοδικά. Η αντικατάσταση ενός κλειδιού κάθε λίγους μήνες περιορίζει το διάστημα κατά το οποίο ένα κλειδί που έχει διαρρεύσει παραμένει χρήσιμο σε έναν εισβολέα.
  • Παραχωρείτε στο κλειδί την ελάχιστη απαιτούμενη πρόσβαση. Ένα κλειδί που επιτρέπει μόνο την ανάγνωση δεδομένων δεν πρέπει να μπορεί επίσης να τα τροποποιεί ή να τα διαγράφει.
  • Παρακολουθείτε ασυνήθιστη δραστηριότητα, όπως μια ξαφνική αύξηση των αιτημάτων από ένα κλειδί.

Περιορισμοί

Αυτό το εργαλείο δεν διατηρεί αρχείο των κλειδιών που έχει δημιουργήσει, επομένως δεν μπορεί να εγγυηθεί ότι ένα κλειδί δεν έχει παραχθεί ξανά. Η πιθανότητα να ταιριάξουν δύο τυχαία κλειδιά 32 χαρακτήρων είναι περίπου 1 στις (2,5 cm) 2,27 × 10⁵⁷, δηλαδή αρκετά κοντά στο μηδέν για τη συνήθη χρήση, αλλά τα συστήματα που χρειάζονται απόλυτη εγγύηση μοναδικότητας, όπως τα πρωτεύοντα κλειδιά βάσεων δεδομένων, πρέπει να ελέγχουν τις νέες τιμές σε σχέση με τις υπάρχουσες σε έναν διακομιστή.

Το σύνολο χαρακτήρων είναι σταθερό και περιλαμβάνει κεφαλαία γράμματα, πεζά γράμματα και ψηφία. Δεν περιλαμβάνει σύμβολα όπως ! ή -, γεγονός που επιτρέπει την ασφαλή επικόλληση των κλειδιών στις περισσότερες διευθύνσεις URL, κεφαλίδες και αρχεία διαμόρφωσης χωρίς διαφυγή χαρακτήρων.

Συχνές ερωτήσεις

Τι είναι μια γεννήτρια κλειδιών API;

Είναι ένα εργαλείο που παράγει τυχαίες συμβολοσειρές για χρήση ως διαπιστευτήρια ελέγχου ταυτότητας μεταξύ εφαρμογών λογισμικού. Η συγκεκριμένη δημιουργεί κλειδιά από 8 έως 128 χαρακτήρες, επιλεγμένους από 62 πιθανούς χαρακτήρες, χρησιμοποιώντας την κρυπτογραφικά ασφαλή γεννήτρια τυχαίων αριθμών του προγράμματος περιήγησης.

Είναι αρκετά ασφαλές για παραγωγική χρήση ένα κλειδί από αυτό το εργαλείο;

Η ίδια η τυχαιότητα είναι κρυπτογραφικά ασφαλής. Η συνολική ασφάλεια εξαρτάται επίσης από τον τρόπο αποθήκευσης και μετάδοσης του κλειδιού: μην το υποβάλλετε ποτέ στο σύστημα ελέγχου πηγαίου κώδικα, να το στέλνετε πάντα μέσω HTTPS και να το αλλάζετε σε τακτά διαστήματα.

Τι μήκος πρέπει να επιλέξω;

Η προεπιλογή των 32 χαρακτήρων παρέχει περίπου 2,27 × 10⁵⁷ πιθανούς συνδυασμούς, πολύ περισσότερους από όσους θα μπορούσε να αναζητήσει οποιαδήποτε ρεαλιστική προσπάθεια εξαντλητικής δοκιμής. Μικρότερα κλειδιά, όπως αυτά των 16 χαρακτήρων, μπορεί να είναι κατάλληλα για εσωτερικά εργαλεία χαμηλού κινδύνου. Τα πολύ μεγάλα κλειδιά προσφέρουν μικρή πρόσθετη προστασία, αλλά είναι δυσκολότερο να αποθηκευτούν και να επικολληθούν.

Μπορώ να ορίσω προσαρμοσμένο μήκος;

Ναι. Το πεδίο μήκους δέχεται οποιονδήποτε ακέραιο αριθμό από 8 έως 128. Το ίδιο το σύνολο χαρακτήρων (A–Z, a–z, 0–9) παραμένει σταθερό.

Αποθηκεύει ή μεταδίδει το εργαλείο τα κλειδιά που δημιουργεί;

Όχι. Κάθε κλειδί δημιουργείται με τοπική JavaScript στο πρόγραμμα περιήγησης. Τίποτα δεν αποστέλλεται σε διακομιστή, δεν καταγράφεται και δεν αποθηκεύεται.

Ποια είναι η διαφορά μεταξύ ενός κλειδιού API και ενός διακριτικού OAuth;

Ένα κλειδί API είναι ένα διαπιστευτήριο μακράς διάρκειας που παραμένει έγκυρο μέχρι να το ανακαλέσει κάποιος. Ένα διακριτικό OAuth λήγει αυτόματα μετά από καθορισμένο χρονικό διάστημα και μπορεί να ανανεωθεί χωρίς άμεση συμμετοχή του χρήστη. Το OAuth είναι κατάλληλο για δημόσιες υπηρεσίες που διαχειρίζονται προσωπικά δεδομένα, ενώ τα κλειδιά API για απλούστερες, εσωτερικές εφαρμογές ή χρήση κατά την ανάπτυξη.

Ποια προγράμματα περιήγησης υποστηρίζει αυτό το εργαλείο;

Οποιοδήποτε πρόγραμμα περιήγησης παρέχει το Web Crypto API, δηλαδή όλες τις εκδόσεις των Chrome, Firefox, Safari, Edge και Opera που κυκλοφόρησαν την τελευταία δεκαετία. Αν αυτό το API λείπει, το εργαλείο εμφανίζει μήνυμα σφάλματος. Δεν καταφεύγει ποτέ στη Math.random(), η οποία δεν είναι ασφαλής.