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

Γεννήτρια Scrypt

Παράγετε ένα κλειδί scrypt από έναν κωδικό πρόσβασης με τυχαίο ή προσαρμοσμένο salt. Επιλέξτε εκθέτη κόστους έως 15 (N έως 32768), μέγεθος μπλοκ r έως 8, παραλληλισμό p έως 4 και μήκος κλειδιού από 16 έως 64 bytes. Το εργαλείο ακολουθεί το RFC 7914 και επιστρέφει το κλειδί, το salt που χρησιμοποιήθηκε και τις παραμέτρους σε hex ή Base64, έτοιμα για σύγκριση με Node.js crypto.scrypt, Python hashlib ή libsodium. Ο κωδικός πρόσβασης δεν εμφανίζεται ξανά.

Επαναφορά

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

Τι είναι το scrypt;

Το Scrypt είναι μια συνάρτηση παραγωγής κλειδιού με υψηλές απαιτήσεις μνήμης, που δημιούργησε ο Colin Percival και τυποποιήθηκε στο RFC 7914. Παράγει ένα κλειδί από έναν κωδικό πρόσβασης και ένα salt, αναγκάζοντας κάθε προσπάθεια να χρησιμοποιεί μεγάλο τμήμα μνήμης. Χρησιμοποιείται για την αποθήκευση κωδικών πρόσβασης, την κρυπτογράφηση δίσκων και ορισμένα κρυπτονομίσματα.

Τι σημαίνουν τα N, r και p;

Το N είναι το κόστος CPU και μνήμης και πρέπει να είναι δύναμη του δύο, το r είναι το μέγεθος του μπλοκ και το p είναι ο συντελεστής παραλληλισμού. Η χρήση μνήμης είναι περίπου 128 επί N επί r bytes, επομένως για N = 16384 και r = 8 απαιτούνται 16 MiB. Εδώ το N φτάνει έως 32768, το r έως 8 και το p έως 4.

Ποιες είναι οι προεπιλεγμένες παράμετροι;

Οι προεπιλεγμένες τιμές είναι N = 16384 (εκθέτης κόστους 14), r = 8, p = 1 και κλειδί 32 bytes, δηλαδή οι διαδραστικές ρυθμίσεις που προτείνονται στην εργασία για το scrypt. Αυξήστε το N για ισχυρότερη προστασία, όσο το επιτρέπει το σύστημά σας.

Πώς επιλέγεται το salt;

Αν το πεδίο salt είναι κενό, το εργαλείο δημιουργεί 16 τυχαία bytes και τα εμφανίζει στο αποτέλεσμα. Αν καταχωρίσετε salt, χρησιμοποιούνται τα bytes του σε UTF-8, ώστε να μπορείτε να αναπαράγετε ένα κλειδί από άλλο σύστημα. Μην επαναχρησιμοποιείτε ποτέ το ίδιο salt για διαφορετικούς κωδικούς πρόσβασης.

Μπορώ να αναπαράγω τα διανύσματα δοκιμών του RFC 7914;

Ναι. Ο κωδικός πρόσβασης pleaseletmein με salt SodiumChloride, εκθέτη κόστους 14, r = 8, p = 1 και κλειδί 64 bytes δίνει 7023bdcb3afd7348461c06cd81fd38ebfda8fbba904f8e3ea9b543f6545da1f2d5432955613f0fcf62d49705242a9af9e61e85dc0d651e40dfcf017b45575887, το τρίτο διάνυσμα του RFC.

Γιατί υπάρχουν ανώτατα όρια στις παραμέτρους;

Το Scrypt δεσμεύει πραγματική μνήμη και εκτελείται σε κοινόχρηστο διακομιστή. Το ανώτατο όριο N στο 32768, το r στο 8 και το p στο 4 διατηρεί τη χρήση μνήμης κάθε παραγωγής κάτω από περίπου 32 MiB και τον χρόνο εργασίας στα ένα ή δύο δευτερόλεπτα.

Πώς αποθηκεύω ένα hash κωδικού πρόσβασης scrypt;

Αποθηκεύστε μαζί το κλειδί, το salt και τα N, r και p, επειδή θα χρειαστείτε όλα αυτά για να ελέγξετε αργότερα έναν κωδικό πρόσβασης. Βιβλιοθήκες όπως οι Node.js crypto.scrypt αφήνουν σε εσάς την επιλογή της μορφής αποθήκευσης, ενώ άλλες χρησιμοποιούν τις δικές τους μορφές συμβολοσειράς.

Περιλαμβάνεται ο κωδικός πρόσβασής μου στο αποτέλεσμα;

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

Να χρησιμοποιήσω scrypt ή Argon2;

Και τα δύο απαιτούν πολλή μνήμη και είναι κατάλληλα για κωδικούς πρόσβασης. Το Argon2id είναι η νεότερη προτεινόμενη επιλογή και ρυθμίζεται ευκολότερα, ενώ το scrypt υποστηρίζεται ευρέως σε τυπικές βιβλιοθήκες όπως το Node.js και η Python.

Τι αλλάζουν οι επιλογές hex και Base64;

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

Σχετικά με το OneClick Pro

Το OneClick Pro είναι μια δωρεάν συλλογή με περισσότερα από 150 διαδικτυακά εργαλεία για καθημερινή εργασία: μετατροπή εικόνων και μονάδων, μορφοποίηση και επικύρωση κώδικα, έλεγχος τομέων και SEO, καθώς και εργασία με κείμενο, ημερομηνίες και αριθμούς. Κάθε εργαλείο λειτουργεί χωρίς εγγραφή ή συνδρομή, και ό,τι εισάγετε χρησιμοποιείται μόνο για τον υπολογισμό του αποτελέσματός σας και δεν αποθηκεύεται ποτέ. Χρησιμοποιήστε το ως γρήγορη εργαλειοθήκη για μεμονωμένες εργασίες ή αποθηκεύστε στα αγαπημένα τα εργαλεία που χρησιμοποιείτε καθημερινά.