Δημιουργός Argon2
Δημιουργήστε ένα hash κωδικού πρόσβασης Argon2id με τυχαίο salt 16 byte και επιλέξτε μνήμη, επαναλήψεις, παραλληλισμό και μήκος hash. Η μνήμη περιορίζεται στα 64 MiB και οι επαναλήψεις στις 4, ενώ οι προεπιλεγμένες τιμές ακολουθούν τη βασική σύσταση του OWASP: 19 MiB και 2 περάσματα. Το εργαλείο επιστρέφει την τυπική συμβολοσειρά PHC που αρχίζει με $argon2id$v=19$, την οποία επαληθεύουν τα PHP, libsodium και οι βιβλιοθήκες argon2. Ο κωδικός πρόσβασης δεν εμφανίζεται ποτέ.
Συχνές ερωτήσεις
Τι είναι το Argon2id;
Το Argon2 κέρδισε τον διαγωνισμό Password Hashing Competition το 2015 και προδιαγράφεται στο RFC 9106. Το Argon2id είναι η υβριδική παραλλαγή που αντιστέκεται τόσο σε επιθέσεις πλευρικού καναλιού όσο και σε επιθέσεις GPU. Είναι η παραλλαγή που συνιστούν το OWASP και το RFC για την αποθήκευση κωδικών πρόσβασης.
Τι σημαίνουν οι ρυθμίσεις μνήμης, επαναλήψεων και παραλληλισμού;
Η μνήμη ορίζει πόσα MiB δεσμεύει κάθε hash, οι επαναλήψεις ορίζουν πόσα περάσματα εκτελούνται σε αυτή τη μνήμη και ο παραλληλισμός ορίζει τον αριθμό των λωρίδων. Περισσότερη μνήμη και περισσότερες επαναλήψεις αυξάνουν το κόστος κάθε δοκιμής για τους επιτιθέμενους. Εδώ η μνήμη κυμαίνεται από 1 έως 64 MiB, οι επαναλήψεις από 1 έως 4 και ο παραλληλισμός από 1 έως 4.
Ποιες ρυθμίσεις πρέπει να χρησιμοποιήσω;
Οι προεπιλεγμένες τιμές είναι 19 MiB, 2 επαναλήψεις και 1 λωρίδα, δηλαδή το ελάχιστο που ορίζει το OWASP για το Argon2id. Η προεπιλογή του PHP είναι 64 MiB με 4 επαναλήψεις, ρυθμίσεις που μπορείτε επίσης να αναπαραγάγετε εδώ. Σε περιβάλλον παραγωγής, χρησιμοποιήστε όση μνήμη μπορούν να διαθέσουν οι διακομιστές σας ανά σύνδεση.
Γιατί υπάρχουν όρια στη μνήμη και στις επαναλήψεις;
Κάθε hash δεσμεύει πράγματι τη μνήμη που ζητάτε και εκτελεί κάθε πέρασμα σε έναν κοινόχρηστο διακομιστή. Ο περιορισμός στα 64 MiB και στις 4 επαναλήψεις διατηρεί κάθε αίτημα κάτω από ένα κλάσμα του δευτερολέπτου, ενώ εξακολουθεί να καλύπτει συνήθεις ρυθμίσεις παραγωγής.
Τι περιέχει η συμβολοσειρά εξόδου;
Ένα αποτέλεσμα όπως το $argon2id$v=19$m=19456,t=2,p=1$ ακολουθούμενο από το salt και το hash αναφέρει την παραλλαγή, την έκδοση, τη μνήμη σε KiB, τις επαναλήψεις και τις λωρίδες. Το salt και το hash είναι σε μορφή Base64 χωρίς padding. Αποθηκεύστε ολόκληρη τη συμβολοσειρά, επειδή η επαλήθευση διαβάζει από αυτήν κάθε παράμετρο.
Γιατί το hash διαφέρει κάθε φορά;
Κάθε αίτημα χρησιμοποιεί ένα νέο τυχαίο salt 16 byte, επομένως ο ίδιος κωδικός πρόσβασης παράγει διαφορετική συμβολοσειρά κάθε φορά. Όλα επαληθεύονται σωστά με τον σωστό κωδικό πρόσβασης.
Μπορώ να επιλέξω το μήκος του hash;
Ναι, από 16 έως 64 byte, με προεπιλογή τα 32 byte. Οι μεγαλύτερες ετικέτες δεν δυσκολεύουν την εικασία, επομένως 32 byte αρκούν για την αποθήκευση κωδικών πρόσβασης.
Ποια συστήματα δέχονται αυτά τα hash;
Τα PHP password_verify, crypto_pwhash_str_verify της libsodium, το πακέτο argon2 για Node.js, το argon2-cffi για Python και το Spring Security διαβάζουν τη μορφή συμβολοσειράς PHC. Τα ελέγχει επίσης το Argon2 Verifier αυτού του ιστότοπου.
Αποθηκεύεται ή επιστρέφεται ο κωδικός πρόσβασής μου;
Όχι. Ο κωδικός πρόσβασης χρησιμοποιείται μόνο στη μνήμη για τον υπολογισμό του hash και αφαιρείται από την απόκριση. Δεν καταγράφεται ούτε αποθηκεύεται ποτέ.
Μπορώ να δημιουργήσω hash Argon2i ή Argon2d;
Όχι. Το εργαλείο παράγει μόνο Argon2id, επειδή είναι η προτεινόμενη παραλλαγή για κωδικούς πρόσβασης. Το Argon2 Verifier εξακολουθεί να δέχεται hash Argon2i και Argon2d.