Thursday, March 6, 2025

Generator Kata Sandi Kuat dengan Vanilla Javascript

 <!DOCTYPE html>

<html lang="id">

<head>

    <meta charset="UTF-8">

    <meta name="viewport" content="width=device-width, initial-scale=1.0">

    <title>Generator Kata Sandi Kuat</title>

    <style>

        body {

            font-family: Arial, sans-serif;

            text-align: center;

            margin-top: 50px;

        }

        #passwordOutput {

            font-size: 20px;

            margin-top: 20px;

            padding: 10px;

            border: 1px solid #ccc;

            display: inline-block;

        }

        button {

            padding: 10px 20px;

            font-size: 16px;

            cursor: pointer;

        }

    </style>

</head>

<body>

    <h1>Generator Kata Sandi Kuat</h1>

    <button onclick="generatePassword()">Buat Kata Sandi</button>

    <div id="passwordOutput"></div>


    <script>

        function generatePassword() {

            // Karakter yang bisa digunakan dalam kata sandi

            const hurufKecil = 'abcdefghijklmnopqrstuvwxyz';

            const hurufBesar = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ';

            const angka = '0123456789';

            const simbol = '!@#$%^&*()_+-=[]{}|;:,.<>?';

            const semuaKarakter = hurufKecil + hurufBesar + angka + simbol;


            // Panjang kata sandi (misalnya 12 karakter)

            const panjang = 12;

            let kataSandi = '';


            // Pastikan minimal 1 karakter dari setiap jenis

            kataSandi += hurufKecil[Math.floor(Math.random() * hurufKecil.length)];

            kataSandi += hurufBesar[Math.floor(Math.random() * hurufBesar.length)];

            kataSandi += angka[Math.floor(Math.random() * angka.length)];

            kataSandi += simbol[Math.floor(Math.random() * simbol.length)];


            // Tambahkan karakter acak sampai mencapai panjang yang diinginkan

            for (let i = kataSandi.length; i < panjang; i++) {

                kataSandi += semuaKarakter[Math.floor(Math.random() * semuaKarakter.length)];

            }


            // Acak ulang kata sandi agar posisi karakter lebih random

            kataSandi = kataSandi.split('').sort(() => Math.random() - 0.5).join('');


            // Tampilkan kata sandi di halaman

            document.getElementById('passwordOutput').innerText = kataSandi;

        }

    </script>

</body>

</html>

No comments:

Post a Comment

Menjadi Programmer Bukan Hanya Tentang Coding, Tapi Tentang Mempermudah Kehidupan

Semenjak menjadi seorang programmer, ada satu cara pandang yang perlahan berubah dalam diri saya. Saya mulai berpikir bahwa ilmu pemrograman...