{"id":1850,"date":"2025-08-21T09:26:59","date_gmt":"2025-08-21T09:26:59","guid":{"rendered":"https:\/\/moosted.com\/wordpress\/?page_id=1850"},"modified":"2025-08-27T19:48:03","modified_gmt":"2025-08-27T19:48:03","slug":"password-generator","status":"publish","type":"page","link":"https:\/\/moosted.com\/wordpress\/password-generator\/","title":{"rendered":"Passphrase Generator"},"content":{"rendered":"\n<!DOCTYPE html>\n<html lang=\"en\">\n<head>\n    <center>\n    <meta charset=\"UTF-8\">\n    <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\n    <title>Passphrase Generator<\/title>\n    <script src=\"https:\/\/cdn.tailwindcss.com\"><\/script>\n    <link href=\"https:\/\/fonts.googleapis.com\/css2?family=Inter:wght@400;600;700&#038;display=swap\" rel=\"stylesheet\">\n    <style>\n        body {\n            font-family: 'Inter', sans-serif;\n            background-color: #1a202c; \/* A dark, cool background *\/\n        }\n        .container {\n            max-width: 800px;\n        }\n    <\/style>\n<\/head>\n<body class=\"bg-gray-900 text-gray-100 flex items-center justify-center min-h-screen p-4\">\n    <div class=\"container bg-gray-800 rounded-lg p-6 md:p-10 shadow-lg border border-gray-700\">\n        <h1 class=\"text-3xl md:text-4xl font-bold mb-6 text-center text-gray-50\">\n            Jackson Password Generator \ud83d\udd10\n        <\/h1>\n\n        <div class=\"relative flex items-center mb-6\">\n            <input type=\"text\" id=\"password-output\" readonly class=\"flex-grow bg-gray-700 text-gray-200 text-sm p-3 rounded-l-md focus:outline-none cursor-text\">\n            <button id=\"copy-button\" class=\"bg-blue-600 text-white p-3 rounded-r-md hover:bg-blue-700 transition duration-300\">\n                Copy\n            <\/button>\n        <\/div>\n        \n        <button id=\"generate-button\" class=\"w-full bg-green-600 text-white font-semibold py-3 rounded-md hover:bg-green-700 transition duration-300\">\n            Generate Passphrase\n        <\/button>\n        \n        <!-- Message box for user feedback -->\n        <div id=\"message-box\" class=\"mt-4 hidden p-3 rounded-md text-center text-sm font-medium transition duration-300\"><\/div>\n\n    <\/div>\n\n    <script>\n        \/\/ Get references to all the HTML elements\n        const passwordOutputInput = document.getElementById('password-output');\n        const generateButton = document.getElementById('generate-button');\n        const copyButton = document.getElementById('copy-button');\n        const messageBox = document.getElementById('message-box');\n\n        \/\/ Define the word lists provided by the user\n        const list1 = ['Large', 'Small', 'Scary', 'Wild', 'Angry', 'Bored', 'Clean', 'Crazy', 'Fuzzy', 'Happy'];\n        const list2 = ['Black', 'Brown', 'Cream', 'Green', 'Hazel', 'Olive', 'Peach', 'White', 'Topaz', 'Lilac'];\n        const list3 = ['Bear', 'Duck', 'Frog', 'Goat', 'Lynx', 'Lion', 'Moth', 'Newt', 'Seal', 'Wasp'];\n        const list4 = [':-)', ';-)', ':-(', ':\\'(', ':--o', ':--P', ':-]', ':-D', ':-\/', '=-)', '%-)'];\n\n        \/\/ Event listener for the generate button\n        generateButton.addEventListener('click', generatePassphrase);\n\n        \/\/ Event listener for the copy button\n        copyButton.addEventListener('click', copyToClipboard);\n\n        \/**\n         * Generates a new passphrase by picking one random word from each list.\n         *\/\n        function generatePassphrase() {\n            \/\/ Pick a random word from each list\n            const word1 = list1[Math.floor(Math.random() * list1.length)];\n            const word2 = list2[Math.floor(Math.random() * list2.length)];\n            const word3 = list3[Math.floor(Math.random() * list3.length)];\n            \n            \/\/ Generate a random two-digit number\n            const randomNumber = Math.floor(Math.random() * 90) + 10;\n            \n            \/\/ Pick a random punctuation mark from the list\n            const punctuation = list4[Math.floor(Math.random() * list4.length)];\n\n            \/\/ Combine the words without a hyphen, add the random number, and the punctuation\n            const passphrase = `${word1}${word2}${word3}${randomNumber}${punctuation}`;\n\n            \/\/ Display the generated passphrase\n            passwordOutputInput.value = passphrase;\n            showMessage('Passphrase generated successfully!', 'bg-green-500 text-white');\n        }\n\n        \/**\n         * Copies the generated password to the clipboard.\n         *\/\n        function copyToClipboard() {\n            const password = passwordOutputInput.value;\n            if (!password) {\n                showMessage('Nothing to copy.', 'bg-yellow-500 text-gray-800');\n                return;\n            }\n\n            \/\/ Select the text in the input field\n            passwordOutputInput.select();\n            passwordOutputInput.setSelectionRange(0, 99999); \/\/ For mobile devices\n\n            try {\n                \/\/ Use document.execCommand('copy') for better compatibility in iFrames\n                document.execCommand('copy');\n                showMessage('Passphrase copied to clipboard!', 'bg-blue-500 text-white');\n            } catch (err) {\n                showMessage('Failed to copy passphrase.', 'bg-red-500 text-white');\n                console.error('Copy to clipboard failed: ', err);\n            }\n        }\n        \n        \/**\n         * Displays a temporary message to the user.\n         * @param {string} message The message to display.\n         * @param {string} className The Tailwind CSS classes for styling the message box.\n         *\/\n        function showMessage(message, className) {\n            \/\/ Set message and style\n            messageBox.textContent = message;\n            messageBox.className = `mt-4 p-3 rounded-md text-center text-sm font-medium transition duration-300 ${className}`;\n            messageBox.style.display = 'block';\n\n            \/\/ Hide the message after 3 seconds\n            setTimeout(() => {\n                messageBox.style.display = 'none';\n            }, 3000);\n        }\n\n        \/\/ Generate an initial passphrase when the page loads\n        generatePassphrase();\n    <\/script>\n<\/body>\n<\/html>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"433\" src=\"https:\/\/moosted.com\/wordpress\/wp-content\/uploads\/2025\/08\/2025-08-21-10_31_15-password-page.docx-Word-1024x433.png\" alt=\"\" class=\"wp-image-1853\" srcset=\"https:\/\/moosted.com\/wordpress\/wp-content\/uploads\/2025\/08\/2025-08-21-10_31_15-password-page.docx-Word-1024x433.png 1024w, https:\/\/moosted.com\/wordpress\/wp-content\/uploads\/2025\/08\/2025-08-21-10_31_15-password-page.docx-Word-300x127.png 300w, https:\/\/moosted.com\/wordpress\/wp-content\/uploads\/2025\/08\/2025-08-21-10_31_15-password-page.docx-Word-768x325.png 768w, https:\/\/moosted.com\/wordpress\/wp-content\/uploads\/2025\/08\/2025-08-21-10_31_15-password-page.docx-Word.png 1435w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">This Passphrase generator has been Vibe-Coded between Mr Jackson and Gemini.AI <br>You can use any 3 unrelated word of your choice &#8211; any numbers and any punctuation.<br><br>Check the strength of your password with  &#8211; <a href=\"https:\/\/www.passwordmonster.com\/\" target=\"_blank\" rel=\"noreferrer noopener\">https:\/\/www.passwordmonster.com\/<\/a><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Passphrase Generator Jackson Password Generator \ud83d\udd10 Copy Generate Passphrase This Passphrase generator has been Vibe-Coded between Mr Jackson and Gemini.AI You can use any 3 unrelated word of your choice &#8211; any numbers and any punctuation. Check the strength of your password with &#8211; https:\/\/www.passwordmonster.com\/<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"template-page-builder-no-header-footer.php","meta":{"arc_restricted_post":false,"footnotes":""},"class_list":["post-1850","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/moosted.com\/wordpress\/wp-json\/wp\/v2\/pages\/1850","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/moosted.com\/wordpress\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/moosted.com\/wordpress\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/moosted.com\/wordpress\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/moosted.com\/wordpress\/wp-json\/wp\/v2\/comments?post=1850"}],"version-history":[{"count":7,"href":"https:\/\/moosted.com\/wordpress\/wp-json\/wp\/v2\/pages\/1850\/revisions"}],"predecessor-version":[{"id":1860,"href":"https:\/\/moosted.com\/wordpress\/wp-json\/wp\/v2\/pages\/1850\/revisions\/1860"}],"wp:attachment":[{"href":"https:\/\/moosted.com\/wordpress\/wp-json\/wp\/v2\/media?parent=1850"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}