Lewati ke konten
🛠️ToolsShed

Generator Passphrase Aman

Membuat passphrase mudah diingat bergaya Diceware dengan estimasi entropi.

38

Tentang alat ini

Frasa sandi adalah urutan kata-kata yang tidak berhubungan yang digabungkan untuk membentuk kredensial autentikasi yang mudah diingat dan aman. Pembuat Frasa Sandi Aman menghasilkan frasa menggunakan metode Diceware, teknik kriptografi yang telah terbukti memanfaatkan kekuatan alami otak manusia dalam mengingat urutan kata daripada kombinasi karakter acak. Tidak seperti kata sandi tradisional yang penuh dengan karakter khusus, frasa Diceware menawarkan keamanan luar biasa melalui kesederhanaan, menjadikannya ideal untuk kredensial jangka panjang seperti kata sandi utama pengelola kata sandi, akun perbankan, dan rahasia bernilai tinggi.

Menggunakan pembuat ini sangat mudah: pilih jumlah kata yang Anda inginkan (biasanya 5-6 untuk sebagian besar tujuan), pilih karakter pemisah, dan aktifkan kapitalisasi sesuai kebutuhan. Alat ini langsung menghitung entropi—ukuran statistik kekuatan kata sandi—menunjukkan kepada Anda dengan tepat berapa banyak keamanan yang diberikan frasa Anda dalam bit. Setiap kata yang ditambahkan meningkatkan entropi secara logaritmis; misalnya, frasa 4 kata memberikan ~51 bit entropi sementara frasa 6 kata melompat ke ~77 bit, melampaui rekomendasi keamanan modern.

Frasa Diceware berfungsi karena menggabungkan keacakan sejati (dari pembuat angka acak yang aman secara kriptografi di komputer Anda) dengan daftar kata yang besar (biasanya 7.776 kata), memastikan penyerang tidak dapat menebak atau memprediksi hasilnya. Banyak sistem memerlukan karakter khusus atau angka; daripada melemahkan frasa Anda dengan substitusi yang dapat diprediksi, buatlah satu di sini dan simpan dalam pengelola kata sandi jika akun Anda memerlukan batasan tambahan. Alat ini sangat berharga bagi pengembang, profesional keamanan, dan siapa pun yang mengelola kredensial sensitif dan menghargai baik kemudahan mengingat maupun kepastian matematis.

Pertanyaan yang Sering Diajukan

Implementasi Kode

import secrets
import math

# A small built-in word list; replace with a full EFF large wordlist in production.
WORDLIST = [
    "apple", "brave", "crane", "drift", "eagle", "flame", "grace", "hover",
    "ivory", "jewel", "knack", "lunar", "maple", "noble", "ocean", "pearl",
    "quilt", "raven", "stone", "tiger", "umbra", "vivid", "waltz", "xenon",
    "yacht", "zonal", "amber", "blaze", "crisp", "delta", "ember", "frost",
    "globe", "haste", "index", "joust", "karma", "lance", "marsh", "nerve",
    "ozone", "pilot", "query", "ridge", "storm", "trove", "ultra", "vigor",
    "width", "xylem", "yearn", "zesty",
]

def generate_passphrase(
    word_count: int = 4,
    separator: str = "-",
    capitalize: bool = False,
    append_number: bool = False,
) -> str:
    words = [secrets.choice(WORDLIST) for _ in range(word_count)]
    if capitalize:
        words = [w.capitalize() for w in words]
    phrase = separator.join(words)
    if append_number:
        phrase += separator + str(secrets.randbelow(9000) + 1000)
    return phrase

def passphrase_entropy(word_count: int, wordlist_size: int) -> float:
    """Bits of entropy: log2(wordlist_size ^ word_count)"""
    return word_count * math.log2(wordlist_size)


if __name__ == "__main__":
    for _ in range(5):
        phrase = generate_passphrase(4, "-", capitalize=True, append_number=True)
        print(phrase)
    bits = passphrase_entropy(4, len(WORDLIST))
    print(f"Entropy with {len(WORDLIST)}-word list, 4 words: {bits:.1f} bits")

Comments & Feedback

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