πŸ› οΈToolsShed

Generator Kata Sandi

Buat kata sandi yang kuat dan aman dengan opsi yang dapat disesuaikan.

6128

Generator Kata Sandi membuat kata sandi acak yang aman secara kriptografis menggunakan generator angka acak bawaan browser Anda (Web Crypto API). Ini berarti kata sandi dibuat sepenuhnya di perangkat Anda β€” tidak pernah dikirim melalui jaringan atau disimpan di mana pun.

Konfigurasikan panjang (8-128 karakter) dan set karakter untuk memenuhi persyaratan layanan yang Anda buat akunnya. Sebagian besar pakar keamanan merekomendasikan kata sandi minimal 16 karakter menggunakan campuran huruf besar, huruf kecil, angka, dan simbol.

Pengelola kata sandi adalah teman terbaik dari generator kata sandi. Alat seperti Bitwarden, 1Password, atau KeePass memungkinkan Anda membuat dan menyimpan kata sandi unik dan acak untuk setiap situs tanpa harus mengingatnya. Jangan pernah menggunakan kembali kata sandi di beberapa layanan.

Pertanyaan yang Sering Diajukan

Implementasi Kode

import secrets
import string

def generate_password(
    length: int = 16,
    use_upper: bool = True,
    use_lower: bool = True,
    use_digits: bool = True,
    use_symbols: bool = True,
) -> str:
    """Generate a cryptographically secure random password."""
    charset = ""
    required = []

    if use_lower:
        charset += string.ascii_lowercase
        required.append(secrets.choice(string.ascii_lowercase))
    if use_upper:
        charset += string.ascii_uppercase
        required.append(secrets.choice(string.ascii_uppercase))
    if use_digits:
        charset += string.digits
        required.append(secrets.choice(string.digits))
    if use_symbols:
        symbols = "!@#$%^&*()-_=+[]{}|;:,.<>?"
        charset += symbols
        required.append(secrets.choice(symbols))

    if not charset:
        raise ValueError("At least one character type must be selected")

    # Fill the rest of the password
    remaining = [secrets.choice(charset) for _ in range(length - len(required))]
    password_list = required + remaining

    # Shuffle to avoid predictable positions
    secrets.SystemRandom().shuffle(password_list)
    return "".join(password_list)

# Examples
print(generate_password(16))
print(generate_password(24, use_symbols=False))
print(generate_password(8, use_upper=False, use_symbols=False))

Comments & Feedback

Comments are powered by Giscus. Sign in with GitHub to leave a comment.