{"id":2217,"date":"2026-03-13T19:20:08","date_gmt":"2026-03-13T16:20:08","guid":{"rendered":"https:\/\/fot.net.tr\/?page_id=2217"},"modified":"2026-03-13T20:50:45","modified_gmt":"2026-03-13T17:50:45","slug":"sifre-olusturucu","status":"publish","type":"page","link":"https:\/\/fot.net.tr\/en\/sifre-olusturucu\/","title":{"rendered":"Password Generator"},"content":{"rendered":"    <div class=\"pg-wrap\" id=\"pg-root\">\n        <div class=\"pg-card\">\n            <div class=\"pg-header\">\n                <div class=\"pg-icon\">\n                    <svg width=\"26\" height=\"26\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\">\n                        <rect x=\"3\" y=\"11\" width=\"18\" height=\"11\" rx=\"2\" ry=\"2\"\/>\n                        <path d=\"M7 11V7a5 5 0 0 1 10 0v4\"\/>\n                    <\/svg>\n                <\/div>\n                <h2 class=\"pg-title\">\u015eifre Olu\u015fturucu<\/h2>\n            <\/div>\n\n            <div class=\"pg-output-wrap\">\n                <div class=\"pg-output\" id=\"pg-output\">\u2014<\/div>\n                <button class=\"pg-copy-btn\" id=\"pg-copy\" title=\"Kopyala\">\n                    <svg width=\"17\" height=\"17\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\">\n                        <rect x=\"9\" y=\"9\" width=\"13\" height=\"13\" rx=\"2\" ry=\"2\"\/>\n                        <path d=\"M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1\"\/>\n                    <\/svg>\n                <\/button>\n            <\/div>\n\n            <div class=\"pg-length-section\">\n                <div class=\"pg-length-header\">\n                    <span class=\"pg-label\">Uzunluk<\/span>\n                    <span class=\"pg-length-val\" id=\"pg-len-val\">16<\/span>\n                <\/div>\n                <input type=\"range\" class=\"pg-slider\" id=\"pg-slider\" min=\"8\" max=\"64\" value=\"16\">\n                <div class=\"pg-range-labels\">\n                    <span>8<\/span>\n                    <span>64<\/span>\n                <\/div>\n            <\/div>\n\n            <div class=\"pg-options\">\n                <label class=\"pg-opt\">\n                    <input type=\"checkbox\" id=\"pg-upper\" checked>\n                    <span class=\"pg-check\"><\/span>\n                    <span class=\"pg-opt-label\">B\u00fcy\u00fck Harf <em>ABC<\/em><\/span>\n                <\/label>\n                <label class=\"pg-opt\">\n                    <input type=\"checkbox\" id=\"pg-lower\" checked>\n                    <span class=\"pg-check\"><\/span>\n                    <span class=\"pg-opt-label\">K\u00fc\u00e7\u00fck Harf <em>abc<\/em><\/span>\n                <\/label>\n                <label class=\"pg-opt\">\n                    <input type=\"checkbox\" id=\"pg-num\" checked>\n                    <span class=\"pg-check\"><\/span>\n                    <span class=\"pg-opt-label\">Rakam <em>123<\/em><\/span>\n                <\/label>\n                <label class=\"pg-opt\">\n                    <input type=\"checkbox\" id=\"pg-sym\" checked>\n                    <span class=\"pg-check\"><\/span>\n                    <span class=\"pg-opt-label\">Sembol <em>!@#<\/em><\/span>\n                <\/label>\n            <\/div>\n\n            <div class=\"pg-strength-wrap\">\n                <span class=\"pg-label\">G\u00fc\u00e7<\/span>\n                <div class=\"pg-strength-bar\">\n                    <div class=\"pg-strength-fill\" id=\"pg-strength-fill\"><\/div>\n                <\/div>\n                <div class=\"pg-strength-labels\">\n                    <span class=\"pg-sl\" id=\"pg-sl-none\">\u2014<\/span>\n                    <span class=\"pg-sl\" id=\"pg-sl-weak\">Zay\u0131f<\/span>\n                    <span class=\"pg-sl\" id=\"pg-sl-medium\">Orta<\/span>\n                    <span class=\"pg-sl\" id=\"pg-sl-good\">\u0130yi<\/span>\n                    <span class=\"pg-sl\" id=\"pg-sl-strong\">G\u00fc\u00e7l\u00fc<\/span>\n                <\/div>\n            <\/div>\n\n            <button class=\"pg-generate-btn\" id=\"pg-generate\">\n                <svg width=\"15\" height=\"15\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" style=\"margin-right:8px;vertical-align:middle;\">\n                    <path d=\"M23 4v6h-6\"\/><path d=\"M1 20v-6h6\"\/>\n                    <path d=\"M3.51 9a9 9 0 0 1 14.85-3.36L23 10M1 14l4.64 4.36A9 9 0 0 0 20.49 15\"\/>\n                <\/svg>\n                \u015eifre Olu\u015ftur\n            <\/button>\n\n            <div class=\"pg-copy-msg\" id=\"pg-copy-msg\">\u2713 Kopyaland\u0131!<\/div>\n        <\/div>\n    <\/div>\n\n    <style>\n    .pg-wrap * { box-sizing: border-box; margin: 0; padding: 0; }\n\n    .pg-wrap {\n        font-family: 'Josefin Sans', sans-serif;\n        display: flex;\n        justify-content: center;\n        padding: 32px 16px;\n    }\n\n    .pg-card {\n        background: #0f1416;\n        border: 1.5px solid #66590F;\n        border-radius: 6px;\n        width: 100%;\n        max-width: 480px;\n        padding: 36px 32px;\n        position: relative;\n        box-shadow: 0 0 48px rgba(102,89,15,0.18), 5px 5px 0 #3d3608;\n    }\n\n    .pg-header {\n        display: flex;\n        align-items: center;\n        gap: 12px;\n        margin-bottom: 28px;\n    }\n\n    .pg-icon { color: #c9a227; }\n\n    .pg-title {\n        font-family: 'Bricolage Grotesque', sans-serif;\n        font-size: 22px;\n        font-weight: 700;\n        color: #ffffff;\n        letter-spacing: -0.3px;\n    }\n\n    .pg-output-wrap {\n        background: #080C0E;\n        border: 1.5px solid #2e2a0e;\n        border-radius: 4px;\n        display: flex;\n        align-items: center;\n        margin-bottom: 28px;\n        overflow: hidden;\n    }\n\n    .pg-output {\n        flex: 1;\n        font-family: 'Bricolage Grotesque', sans-serif;\n        font-size: 16px;\n        font-weight: 500;\n        color: #ffffff;\n        padding: 14px 16px;\n        word-break: break-all;\n        letter-spacing: 0.8px;\n        min-height: 52px;\n        display: flex;\n        align-items: center;\n    }\n\n    .pg-copy-btn {\n        background: none;\n        border: none;\n        border-left: 1.5px solid #2e2a0e;\n        padding: 14px 16px;\n        cursor: pointer;\n        color: #c9a227;\n        transition: background 0.15s, color 0.15s;\n        display: flex;\n        align-items: center;\n    }\n\n    .pg-copy-btn:hover { background: #1c1a06; color: #fff; }\n\n    .pg-length-section { margin-bottom: 24px; }\n\n    .pg-length-header {\n        display: flex;\n        justify-content: space-between;\n        align-items: baseline;\n        margin-bottom: 10px;\n    }\n\n    .pg-label {\n        font-size: 10px;\n        font-weight: 600;\n        letter-spacing: 2px;\n        text-transform: uppercase;\n        color: #7a6e30;\n    }\n\n    .pg-length-val {\n        font-family: 'Bricolage Grotesque', sans-serif;\n        font-size: 30px;\n        font-weight: 700;\n        color: #ffffff;\n        line-height: 1;\n    }\n\n    .pg-slider {\n        -webkit-appearance: none;\n        width: 100%;\n        height: 3px;\n        background: #2e2a0e;\n        border-radius: 2px;\n        outline: none;\n        cursor: pointer;\n    }\n\n    .pg-slider::-webkit-slider-thumb {\n        -webkit-appearance: none;\n        width: 20px;\n        height: 20px;\n        border-radius: 50%;\n        background: #c9a227;\n        cursor: pointer;\n        border: 3px solid #0f1416;\n        box-shadow: 0 0 0 1.5px #66590F;\n        transition: transform 0.1s;\n    }\n\n    .pg-slider::-webkit-slider-thumb:hover { transform: scale(1.15); }\n\n    .pg-slider::-moz-range-thumb {\n        width: 20px;\n        height: 20px;\n        border-radius: 50%;\n        background: #c9a227;\n        cursor: pointer;\n        border: 3px solid #0f1416;\n        box-shadow: 0 0 0 1.5px #66590F;\n    }\n\n    .pg-range-labels {\n        display: flex;\n        justify-content: space-between;\n        font-size: 11px;\n        color: #4a4218;\n        margin-top: 7px;\n        font-weight: 600;\n        letter-spacing: 0.5px;\n    }\n\n    .pg-options {\n        display: grid;\n        grid-template-columns: 1fr 1fr;\n        gap: 8px;\n        margin-bottom: 24px;\n    }\n\n    .pg-opt {\n        display: flex;\n        align-items: center;\n        gap: 10px;\n        cursor: pointer;\n        padding: 11px 13px;\n        border: 1.5px solid #1e1c08;\n        border-radius: 4px;\n        transition: border-color 0.15s, background 0.15s;\n        background: #0b0e10;\n        user-select: none;\n    }\n\n    .pg-opt:hover { border-color: #66590F; background: #131208; }\n\n    .pg-opt input { display: none; }\n\n    .pg-check {\n        width: 17px;\n        height: 17px;\n        border: 2px solid #3a3210;\n        border-radius: 3px;\n        flex-shrink: 0;\n        position: relative;\n        transition: background 0.15s, border-color 0.15s;\n    }\n\n    .pg-opt input:checked ~ .pg-check {\n        background: #66590F;\n        border-color: #c9a227;\n    }\n\n    .pg-opt input:checked ~ .pg-check::after {\n        content: '';\n        position: absolute;\n        left: 3px;\n        top: 0px;\n        width: 5px;\n        height: 9px;\n        border: 2px solid #fff;\n        border-top: none;\n        border-left: none;\n        transform: rotate(45deg);\n    }\n\n    .pg-opt-label {\n        font-size: 12px;\n        font-weight: 600;\n        letter-spacing: 0.5px;\n        color: #d4d4d4;\n        display: flex;\n        flex-direction: column;\n    }\n\n    .pg-opt-label em {\n        font-style: normal;\n        font-size: 10px;\n        color: #4a4530;\n        font-weight: 400;\n        margin-top: 2px;\n        letter-spacing: 1px;\n    }\n\n    .pg-strength-wrap {\n        display: flex;\n        align-items: center;\n        gap: 12px;\n        margin-bottom: 24px;\n    }\n\n    .pg-strength-bar {\n        flex: 1;\n        height: 5px;\n        background: #1e1c08;\n        border-radius: 3px;\n        overflow: hidden;\n    }\n\n    .pg-strength-fill {\n        height: 100%;\n        width: 0%;\n        border-radius: 3px;\n        transition: width 0.35s ease, background 0.35s ease;\n    }\n\n    .pg-strength-labels {\n        min-width: 52px;\n        text-align: right;\n        position: relative;\n    }\n\n    .pg-sl {\n        font-family: 'Bricolage Grotesque', sans-serif;\n        font-size: 12px;\n        font-weight: 700;\n        letter-spacing: 0.5px;\n        color: #d4d4d4;\n        display: none;\n        position: absolute;\n        right: 0;\n        top: 50%;\n        transform: translateY(-50%);\n        white-space: nowrap;\n    }\n\n    .pg-sl.active { display: block; }\n\n    #pg-sl-none { position: static; transform: none; display: block; }\n\n    .pg-generate-btn {\n        width: 100%;\n        padding: 15px;\n        background: #66590F;\n        color: #ffffff;\n        border: none;\n        border-radius: 4px;\n        font-family: 'Josefin Sans', sans-serif;\n        font-size: 13px;\n        font-weight: 600;\n        letter-spacing: 2.5px;\n        text-transform: uppercase;\n        cursor: pointer;\n        transition: background 0.15s, transform 0.1s, box-shadow 0.15s;\n        display: flex;\n        align-items: center;\n        justify-content: center;\n    }\n\n    .pg-generate-btn:hover {\n        background: #7a6a10;\n        box-shadow: 0 4px 20px rgba(102,89,15,0.4);\n    }\n\n    .pg-generate-btn:active { transform: scale(0.98); }\n\n    .pg-copy-msg {\n        text-align: center;\n        font-size: 12px;\n        font-weight: 600;\n        letter-spacing: 1.5px;\n        color: #c9a227;\n        height: 22px;\n        margin-top: 14px;\n        opacity: 0;\n        transition: opacity 0.3s;\n        text-transform: uppercase;\n    }\n\n    .pg-copy-msg.show { opacity: 1; }\n    <\/style>\n\n    <script>\n    (function() {\n        var slider = document.getElementById('pg-slider');\n        var lenVal = document.getElementById('pg-len-val');\n        var output = document.getElementById('pg-output');\n        var copyBtn = document.getElementById('pg-copy');\n        var generateBtn = document.getElementById('pg-generate');\n        var copyMsg = document.getElementById('pg-copy-msg');\n        var strengthFill = document.getElementById('pg-strength-fill');\n\n        var strengthLevels = {\n            none:   document.getElementById('pg-sl-none'),\n            weak:   document.getElementById('pg-sl-weak'),\n            medium: document.getElementById('pg-sl-medium'),\n            good:   document.getElementById('pg-sl-good'),\n            strong: document.getElementById('pg-sl-strong')\n        };\n\n        function showStrengthLabel(key) {\n            Object.keys(strengthLevels).forEach(function(k) {\n                strengthLevels[k].classList.remove('active');\n                strengthLevels[k].style.display = 'none';\n            });\n            strengthLevels[key].style.display = 'block';\n            strengthLevels[key].classList.add('active');\n        }\n\n        function generate() {\n            var upper = document.getElementById('pg-upper').checked;\n            var lower = document.getElementById('pg-lower').checked;\n            var num = document.getElementById('pg-num').checked;\n            var sym = document.getElementById('pg-sym').checked;\n            var len = parseInt(slider.value);\n\n            var chars = '';\n            if (upper) chars += 'ABCDEFGHIJKLMNOPQRSTUVWXYZ';\n            if (lower) chars += 'abcdefghijklmnopqrstuvwxyz';\n            if (num) chars += '0123456789';\n            if (sym) chars += '!@#$%^&*()_+-=[]{}|;:,.<>?';\n\n            if (!chars) {\n                output.textContent = 'En az 1 se\u00e7enek se\u00e7in';\n                strengthFill.style.width = '0%';\n                showStrengthLabel('none');\n                return;\n            }\n\n            var arr = new Uint32Array(len);\n            window.crypto.getRandomValues(arr);\n            var pwd = '';\n            for (var i = 0; i < len; i++) {\n                pwd += chars[arr[i] % chars.length];\n            }\n            output.textContent = pwd;\n            updateStrength(calcStrength(upper, lower, num, sym, len));\n        }\n\n        function calcStrength(upper, lower, num, sym, len) {\n            var score = 0;\n            var types = [upper, lower, num, sym].filter(Boolean).length;\n            score += types * 15;\n            if (len >= 8) score += 10;\n            if (len >= 12) score += 15;\n            if (len >= 20) score += 15;\n            if (len >= 32) score += 15;\n            if (len >= 48) score += 10;\n            return Math.min(score, 100);\n        }\n\n        function updateStrength(score) {\n            strengthFill.style.width = score + '%';\n            if (score === 0) {\n                strengthFill.style.background = '#2e2a0e';\n                showStrengthLabel('none');\n            } else if (score < 30) {\n                strengthFill.style.background = '#c0392b';\n                showStrengthLabel('weak');\n            } else if (score < 55) {\n                strengthFill.style.background = '#e67e22';\n                showStrengthLabel('medium');\n            } else if (score < 80) {\n                strengthFill.style.background = '#d4ac0d';\n                showStrengthLabel('good');\n            } else {\n                strengthFill.style.background = '#27ae60';\n                showStrengthLabel('strong');\n            }\n        }\n\n        slider.addEventListener('input', function() {\n            lenVal.textContent = this.value;\n            generate();\n        });\n\n        ['pg-upper', 'pg-lower', 'pg-num', 'pg-sym'].forEach(function(id) {\n            document.getElementById(id).addEventListener('change', generate);\n        });\n\n        copyBtn.addEventListener('click', function() {\n            var pwd = output.textContent;\n            if (!pwd || pwd === '\u2014' || pwd.indexOf('se\u00e7enek') > -1) return;\n            navigator.clipboard.writeText(pwd).then(function() {\n                copyMsg.classList.add('show');\n                setTimeout(function() { copyMsg.classList.remove('show'); }, 2000);\n            });\n        });\n\n        generateBtn.addEventListener('click', generate);\n        generate();\n    })();\n    <\/script>\n    \n","protected":false},"excerpt":{"rendered":"","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-2217","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/fot.net.tr\/en\/wp-json\/wp\/v2\/pages\/2217","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/fot.net.tr\/en\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/fot.net.tr\/en\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/fot.net.tr\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/fot.net.tr\/en\/wp-json\/wp\/v2\/comments?post=2217"}],"version-history":[{"count":4,"href":"https:\/\/fot.net.tr\/en\/wp-json\/wp\/v2\/pages\/2217\/revisions"}],"predecessor-version":[{"id":2225,"href":"https:\/\/fot.net.tr\/en\/wp-json\/wp\/v2\/pages\/2217\/revisions\/2225"}],"wp:attachment":[{"href":"https:\/\/fot.net.tr\/en\/wp-json\/wp\/v2\/media?parent=2217"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}