Εργαλείο Δημιουργίας και Επικύρωσης Κωδικών Πρόσβασης

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

Γεννήτρια κωδικών πρόσβασης

Επιλέξτε ομάδες συμβόλων
Συμβουλή: Αποκλείστε χαρακτήρες επιλέγοντας ομάδες ή κάνοντας απευθείας κλικ σε μεμονωμένους χαρακτήρες.
Αποτέλεσμα

Ελεγκτής πολιτικής κωδικών πρόσβασης

Αποτελέσματα
  • Μήκος
  • Πεζά γράμματα
  • Κεφαλαία γράμματα
  • Ψηφία
  • Σύμβολα
  • Διαδοχικός
  • Επαναλήψεις
  • Λίστα αποκλεισμού
Όλοι οι έλεγχοι εκτελούνται τοπικά στο πρόγραμμα περιήγησής σας.

Γεννήτρια φράσεων πρόσβασης

Οι λέξεις επιλέγονται ομοιόμορφα με κρυπτογραφικά ασφαλείς τυχαίες τιμές (Web Crypto) από μια λίστα 1271 λέξεων χωρίς ασαφή όρια. 6 λέξεις παρέχουν περίπου 62 bits εντροπίας — χρησιμοποιήστε 8 λέξεις για μεγαλύτερη ισχύ.

Κρυφό Φύλλο Εμπιστευτικών Πληροφοριών για Κατακερματισμό Κωδικών Πρόσβασης

Argon2id
  • Χρησιμοποιήστε το Argon2id με λογικές παραμέτρους που αυξάνουν την απαιτούμενη μνήμη
  • Χρόνος ≥ 2 διαδρομές, μνήμη ≥ 64 MB (προσαρμόστε ανάλογα με το περιβάλλον)
  • Αποθηκεύστε ένα μοναδικό άλας ανά χρήστη; προαιρετικά, χρησιμοποιήστε ένα pepper στο επίπεδο εφαρμογής
PBKDF2
  • Επιλέξτε SHA-256 ή SHA-512 με επαναλήψεις ≥ 210k (προσαρμόστε按需)
  • Χρησιμοποιήστε ένα μοναδικό άλας για κάθε κατακερματισμό; υποστηρίξτε αναβαθμίσεις παραμέτρων
  • Μεταφέρετε σε παραμέτρους υψηλότερου κόστους κατά την επόμενη σύνδεση του χρήστη
BCrypt
  • Ορίστε το κόστος μεταξύ 10–14, ανάλογα με τις δυνατότητες του διακομιστή
  • Αποφύγετε ζητήματα περικοπής; κατακερματίστε ολόκληρο τον κωδικό πρόσβασης
  • Εφαρμόστε περιορισμό ρυθμού και παρακολούθηση στα τελεστές ελέγχου ταυτότητας
Αναφορά: NIST SP 800-63B, OWASP ASVS. Οι παράμετροι πρέπει να ευθυγραμμίζονται με τις δυνατότητες του υλικού και τα SLO.

Αξιολογητής ισχύος κωδικού πρόσβασης

Η ισχύς προσεγγίζεται μέσω της εντροπίας: εντροπία = log2(μέγεθος συνόλου χαρακτήρων) × μήκος. Ένα μεγαλύτερο σύνολο χαρακτήρων και μεγαλύτερο μήκος βελτιώνουν την αντοχή στην απόπειρα εισαγωγής.

  • Ασθενής: < 50 bits —— Κατάλληλο μόνο για μεμονωμένες περιπτώσεις ή περιπτώσεις χαμηλής αξίας
  • Μέτριος: 50–80 bits —— Αποδεκτό για περιπτώσεις χαμηλού κινδύνου
  • Ισχυρός: 80–110 bits —— Προτεινόμενος προεπιλεγμένος στόχος
  • Εξαιρετικός: > 110 bits —— Προτεινόμενο για διαχειριστικούς ή κρίσιμους λογαριασμούς

Σημείωση: Τα μοντέλα επιθέσεων στον πραγματικό κόσμο ενδέχεται να διαφέρουν. Αποφεύγετε την επανάληψη κωδικών πρόσβασης και ενεργοποιήστε τον έλεγχο ταυτότητας πολλαπλών παραγόντων (MFA).

Πώς να χρησιμοποιήσετε

  • Επιλέξτε μήκος και σύνολο χαρακτήρων (Πεζά/Κεφαλαία/Ψήφια/Σύμβολα); προαιρετικά ενεργοποιήστε την επιλογή «Αποφυγή Παρόμοιων» και «Απαίτηση Κάθε Τύπου»
  • Για πιο ακριβή έλεγχο: αποκλείστε συγκεκριμένους χαρακτήρες ή ομάδες χαρακτήρων, ή επιλέξτε υποσύνολα συμβόλων
  • Επιλέξτε πόσους κωδικούς πρόσβασης θα δημιουργήσετε και, στη συνέχεια, κάντε κλικ στο «Δημιουργία». Τα αποτελέσματα παρτίδας αφαιρούν αυτόματα τις διπλοτυπώσεις και μπορούν να αντιγραφούν όλα ταυτόχρονα
  • Για την επικύρωση υπαρχόντων κωδικών, χρησιμοποιήστε τον «Δοκιμαστή Πολιτικής»; για απομνημονεύσιμες φράσεις πρόσβασης, χρησιμοποιήστε τον «Δημιουργό Φράσεων Πρόσβασης»

Χαρακτηριστικά

  • Κρυπτογραφικά ασφαλής πηγή τυχαίων δεδομένων (Web Crypto)
  • Διαμορφώσιμα σύνολα χαρακτήρων και ομάδων συμβόλων
  • Φιλτράρισμα παρόμοιων χαρακτήρων και προσαρμοσμένοι αποκλεισμοί
  • Δημιουργία παρτίδας 1-100 μοναδικών κωδικών πρόσβασης
  • Μέτρα ισχύος και εντροπίας
  • Δοκιμαστής Πολιτικής και Δημιουργός Φράσεων Πρόσβασης
  • Πολύγλωσσα παραδείγματα κώδικα
  • Αντιγραφή με ένα κλικ (μεμονωμένου ή όλων)

Παραδείγματα Δημιουργίας Κωδικών Πρόσβασης

Ισχυρός
Μήκος 24, περιλαμβάνει κεφαλαία, μικρά γράμματα, ψηφία και σύμβολα
Απομνημονεύσιμος
Μήκος 16, περιλαμβάνει κεφαλαία, μικρά γράμματα και ψηφία; αποφεύγει παρόμοιους χαρακτήρες

Βάση Γνώσεων για Κωδικούς Πρόσβασης

1) Ισχύς Κωδικού Πρόσβασης και Εντροπία
  • Εντροπία ≈ log2(μέγεθος συνόλου χαρακτήρων) × μήκος; το μήκος συνήθως συμβάλλει περισσότερο
  • Προτεινόμενα όρια: Γενικοί λογαριασμοί ≥ 80 bits; Λογαριασμοί υψηλών προνομίων/οικονομικοί ≥ 110 bits
  • Μεγαλύτερο σύνολο χαρακτήρων + μεγαλύτερο μήκος → μεγαλύτερη αντίσταση στην εικασία
2) Μήκος έναντι Πολυπλοκότητας
  • Η τυφλή προσθήκη συμβόλων είναι λιγότερο αποτελεσματική από την αύξηση του μήκους
  • Αποφύγετε προβλέψιμα μοτίβα (π.χ. πάντα «Κεφαλαίο πρώτο γράμμα + αριθμός στο τέλος!»
  • Προτεραιότητα στη επαρκή διάρκεια και μετά μέτρια αύξηση της ποικιλότητας χαρακτήρων
3) Συνήθη Λάθη και Αντιπαραδείγματα
  • Ακολουθίες πλήκτρων (π.χ. qwerty), επαναλαμβανόμενα μπλοκ, γενέθλια/έτη είναι εύκολα στοχευμένα από κανόνες
  • Η χρήση «κύριος κωδικός + επίσημα πρόσθετα τοποθεσίας» δημιουργεί πολλαπλάσιες χρήσεις, συγκεντρώνοντας τον κίνδυνο και καθιστώντας τους κωδικούς πιο εύκολο να μαντευτούν
  • Ποτέ μην χρησιμοποιείτε τον ίδιο κωδικό πρόσβασης σε πολλούς ιστότοπους
4) Συστάσεις Διαχείρισης Κωδικών Πρόσβασης
  • Χρησιμοποιήστε έναν διαχειριστή κωδικών· βεβαιωθείτε για μοναδικούς κωδικούς ανά τοποθεσία· ενεργοποιήστε το MFA για κρίσιμους λογαριασμούς
  • Αποφύγετε τη μετάδοση κωδικών σε απλή μορφή μέσω δημόσιων καναλιών· χρησιμοποιήστε «προφέσιμες» φράσεις πρόσβασης όταν είναι απαραίτητο
  • Αλλάξτε αμέσως και κάνετε μοναδικούς τους κωδικούς αν ανιχνευθεί διαρροή ή επανάχρηση
5) Οδηγίες για Φράσεις Πρόσβασης
  • Συνδυασμοί 4–6 τυχαίων λέξεων είναι συνήθως ισχυροί και απομνημονεύσιμοι
  • Αναμείνετε διαχωριστικά, χρησιμοποιήστε κεφαλαία αρχικά γράμματα και εισάγετε αριθμούς για να βελτιώσετε την ανθεκτικότητα και την αναγνωσιμότητα
  • Αποφύγετε την άμεση συνένωση κοινών φράσεων, στίχων τραγουδιών ή διάσημων αποσπασμάτων

Βέλτιστες Πρακτικές Ασφάλειας Κωδικών Πρόσβασης

Βέλτιστες Πρακτικές
  • Χρησιμοποιήστε επαρκή μήκος: 16+ χαρακτήρες για γενικούς λογαριασμούς, 24+ για κρίσιμους
  • Για ευχρηστιά, προτιμήστε φράσεις πρόσβασης· χρησιμοποιήστε διαχειριστή κωδικών πρόσβασης για την αποθήκευση τυχαίων, υψηλής ανθεκτικότητας κωδικών
  • Ενεργοποιήστε τον έλεγχο πολλαπλών παραγόντων (MFA) όποτε είναι δυνατόν
  • Μην επαναχρησιμοποιείτε ποτέ κωδικούς σε διαφορετικούς ιστότοπους – κάθε λογαριασμός πρέπει να έχει μοναδικό κωδικό
Εντροπία και Ανθεκτικότητα

Η εντροπία μετράει την απρόβλεπτητα βάσει του μήκους και του μεγέθους του συνόλου των χαρακτήρων – όσο υψηλότερος είναι ο αριθμός των bits εντροπίας, τόσο ισχυρότερος είναι κατά κανόνα ο κωδικός πρόσβασης.

  • Δώστε προτεραιότητα στην αύξηση του μήκους για μέγιστο κέρδος ανθεκτικότητας
  • Χρησιμοποιήστε πολλαπλά σύνολα χαρακτήρων όταν είναι εφικτό
  • Ο αποκλεισμός πάρα πολλών χαρακτήρων μειώνει το pool των χαρακτήρων και αποδυναμώνει την ανθεκτικότητα
Πολιτικές και Ανανέωση Κωδικών
  • Προτιμήστε απαιτήσεις μήκους και μαύρες λίστες κοινών/διαρρηγμένων κωδικών έναντι κανόνων σύνθετης σύνθεσης
  • Αποφύγετε συχνές υποχρεωτικές ανανεώσεις κωδικών – αλλάξτε τον μόνο όταν εντοπιστεί παραβίαση ή κίνδυνος
  • Χρησιμοποιήστε λίστες με διατεθέντες κωδικούς για τον αποκλεισμό κοινά χρησιμοποιούμενων ή διαρρηγμένων κωδικών
Φράσεις Πρόσβασης
  • Χρησιμοποιήστε 4–6 τυχαίες λέξεις ενωμένες με διαχωριστικά, π.χ. λίμνη-KΑΡΡΩΤ-πλανήτης_7
  • Αποφύγετε διάσημα αποσπάσματα, στίχους τραγουδιών ή άλλες κοινές φράσεις· η τυχαιότητα έχει μεγαλύτερη σημασία από την «ευφυΐα»
  • Για κρίσιμους λογαριασμούς, χρησιμοποιήστε έναν διαχειριστή κωδικών για την αποθήκευση πραγματικά υψηλής εντροπίας τυχαίων κωδικών
Συμβουλές Ρυθμίσεων Δημιουργίας
  • "Απαιτήστε κάθε επιλεγμένο σύνολο" διασφαλίζει ότι εμφανίζεται τουλάχιστον ένας χαρακτήρας από κάθε επιλεγμένη κατηγορία
  • "Αποφύγετε όμοιους χαρακτήρες" βελτιώνει την αναγνωσιμότητα αλλά μειώνει ελαφρώς το μέγεθος του pool των χαρακτήρων
  • Τα σύμβολα μπορούν να περιοριστούν σε ένα υποσύνολο που υποστηρίζει ο στοχευμένος σύστημα
Αποθήκευση στον Διακομιστή
  • Μην αποθηκεύετε ποτέ κωδικούς σε απλό κείμενο· χρησιμοποιήστε ισχυρή κατακερματισμό (Argon2id/PBKDF2/Bcrypt) με αλάτι
  • Ρυθμίστε κατάλληλα τις παραμέτρους (μνήμη/χρόνος/κόστος)· εξετάστε τη χρήση πιπεριάς όταν χρειάζεται
  • Περιορίστε τον ρυθμό των προσπαθειών σύνδεσης και παρακολουθείτε τις αποτυχίες· εφαρμόστε CAPTCHA ή επαλήθευση συσκευής κατά τη διάρκεια επιθέσεων
Έλεγχος Πολλαπλών Παγών και Επαναφορά
  • Προτιμήστε TOTP ή συσκευειακά κλειδιά· αποφύγετε το SMS όποτε είναι δυνατόν
  • Ασφαλίστε τις ροές επαναφοράς με έλεγχο πολλαπλών παραγόντων ή email και επιβάλετε περιόδους αναμονής
  • Παρέχετε εφεδρικούς κωδικούς επαναφοράς και ενθαρρύνετε τους χρήστες να τους αποθηκεύουν με ασφάλεια
Προστασία Από Γενική Επίθεση Brute Force
  • Εφαρμόστε προοδευτικές καθυστερήσεις ή κλειδώματα με βαθμολογία κινδύνου IP/συσκευής
  • Εφαρμόστε WAF και περιορισμό ρυθμού στα API και τις φόρμες σύνδεσης
  • Παρακολουθήστε επιθέματα διαρροής πιστοποιητικών και ενθαρρύνετε τους χρήστες να υιοθετήσουν μοναδικούς κωδικούς
Τοπική Αποθήκευση και Διαχείριση
  • Χρησιμοποιήστε έναν αξιόπιστο διαχειριστή κωδικών για αποθήκευση και αυτόματη συμπλήρωση
  • Μην κοινοποιείτε ποτέ κωδικούς πρόσβασης σε απλό κείμενο μέσω συνομιλίας ή email. Χρησιμοποιήστε εργαλεία διαχείρισης μυστικών για ομάδες
  • Εάν καταγράφετε κωδικούς πρόσβασης εκτός σύνδεσης, διασφαλίστε τη φυσική ασφάλειά τους
Δηλωση αποποίησης ευθύνης: Αυτό το εργαλείο δημιουργεί κωδικούς πρόσβασης τοπικά στο πρόγραμμα περιήγησής σας χρησιμοποιώντας Web Crypto. Δεν αποστέλλονται δεδομένα σε κανέναν διακομιστή.

Πώς να Δημιουργήσετε Κωδικούς Πρόσβασης μέσω Γλωσσών Προγραμματισμού

JavaScript (Web Crypto)
function randomPassword(length = 16, sets = {lower:true, upper:true, digits:true, symbols:true}) {
  const pools = {
    lower: 'abcdefghijklmnopqrstuvwxyz',
    upper: 'ABCDEFGHIJKLMNOPQRSTUVWXYZ',
    digits: '0123456789',
    symbols: '!@#$%^&*+-=_~`|/?()[]{}<>,.;:\'\"'
  };
  let pool = '';
  for (const k of Object.keys(sets)) if (sets[k]) pool += pools[k];
  if (!pool) throw new Error('No charset');
  // Rejection sampling removes modulo bias
  const limit = Math.floor(0x100000000 / pool.length) * pool.length;
  const buf = new Uint32Array(1);
  let out = '';
  for (let i = 0; i < length; i++) {
    do { crypto.getRandomValues(buf); } while (buf[0] >= limit);
    out += pool[buf[0] % pool.length];
  }
  return out;
}
Python (secrets)
import secrets

def random_password(length=16, lower=True, upper=True, digits=True, symbols=True):
    pools = {
        'lower': 'abcdefghijklmnopqrstuvwxyz',
        'upper': 'ABCDEFGHIJKLMNOPQRSTUVWXYZ',
        'digits': '0123456789',
        'symbols': '!@#$%^&*+-=_~`|/?()[]{}<>,.;:\'\"'
    }
    pool = ''.join(v for k, v in pools.items() if locals()[k])
    if not pool:
        raise ValueError('No charset')
    return ''.join(secrets.choice(pool) for _ in range(length))
PHP (random_int)
function random_password($length = 16, $sets = ['lower'=>true,'upper'=>true,'digits'=>true,'symbols'=>true]) {
    $pools = [
        'lower' => 'abcdefghijklmnopqrstuvwxyz',
        'upper' => 'ABCDEFGHIJKLMNOPQRSTUVWXYZ',
        'digits' => '0123456789',
        'symbols' => '!@#$%^&*+-=_~`|/?()[]{}<>,.;:\'\"'
    ];
    $pool = '';
    foreach ($sets as $k => $on) if ($on) $pool .= $pools[$k];
    if ($pool === '') throw new Exception('No charset');
    $out = '';
    for ($i = 0; $i < $length; $i++) {
        $out .= $pool[random_int(0, strlen($pool)-1)];
    }
    return $out;
}
Go (crypto/rand)
package main

import (
  "crypto/rand"
  "math/big"
)

func RandomPassword(length int, pool string) (string, error) {
  out := make([]byte, length)
  for i := 0; i < length; i++ {
    nBig, err := rand.Int(rand.Reader, big.NewInt(int64(len(pool))))
    if err != nil { return "", err }
    out[i] = pool[nBig.Int64()]
  }
  return string(out), nil
}
Java (SecureRandom)
import java.security.SecureRandom;

public class Pw {
  static final String POOL = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789!@#$%^&*+-=_~`|/?()[]{}<>,.;:'\"";
  static final SecureRandom SR = new SecureRandom();
  static String randomPassword(int length) {
    StringBuilder sb = new StringBuilder(length);
    for (int i = 0; i < length; i++) {
      int idx = SR.nextInt(POOL.length());
      sb.append(POOL.charAt(idx));
    }
    return sb.toString();
  }
}
C# (.NET RandomNumberGenerator)
using System;
using System.Security.Cryptography;

public static class Pw {
  public static string RandomPassword(int length, string pool) {
    // GetInt32 draws an unbiased value in [0, pool.Length)
    var chars = new char[length];
    for (int i = 0; i < length; i++) {
      chars[i] = pool[RandomNumberGenerator.GetInt32(pool.Length)];
    }
    return new string(chars);
  }
}
Rust (rand + getrandom)
use rand::rngs::OsRng;
use rand::Rng;

fn random_password(length: usize, pool: &str) -> String {
    // gen_range is uniform, so there is no modulo bias
    let chars: Vec = pool.chars().collect();
    (0..length)
        .map(|_| chars[OsRng.gen_range(0..chars.len())])
        .collect()
}

fn main() {
    let pool = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789!@#$%^&*+-=_~`|/?()[]{}<>,.;:'\"";
    let pw = random_password(16, pool);
    println!("{}", pw);
}