{"id":84,"date":"2026-05-28T11:47:27","date_gmt":"2026-05-28T11:47:27","guid":{"rendered":"https:\/\/netguide.io\/tools\/?p=84"},"modified":"2026-05-28T11:47:28","modified_gmt":"2026-05-28T11:47:28","slug":"api-key-generator","status":"publish","type":"post","link":"https:\/\/netguide.io\/tools\/de\/api-key-generator\/","title":{"rendered":"API Key Generator"},"content":{"rendered":"<div id=\"netgu-465252387\" class=\"netgu-before-content netgu-entity-placement\"><script async src=\"\/\/pagead2.googlesyndication.com\/pagead\/js\/adsbygoogle.js?client=ca-pub-6258556257245998\" crossorigin=\"anonymous\"><\/script><ins class=\"adsbygoogle\" style=\"display:block;\" data-ad-client=\"ca-pub-6258556257245998\" \ndata-ad-slot=\"3494115342\" \ndata-ad-format=\"auto\"><\/ins>\n<script> \n(adsbygoogle = window.adsbygoogle || []).push({}); \n<\/script>\n<\/div>\n<div class=\"wp-api-container\">\n    <h3 class=\"wp-api-title\">Secure API Key Generator<\/h3>\n\n    <div class=\"wp-api-grid\">\n        <div class=\"wp-api-group\">\n            <label>Key Prefix (Optional)<\/label>\n            <input type=\"text\" id=\"api-prefix\" placeholder=\"e.g. sk_live_\" oninput=\"generateMultipleKeys()\">\n        <\/div>\n        <div class=\"wp-api-group\">\n            <label>Key Length (Characters)<\/label>\n            <select id=\"api-length\" onchange=\"generateMultipleKeys()\">\n                <option value=\"16\">16 Characters<\/option>\n                <option value=\"32\" selected>32 Characters (Standard)<\/option>\n                <option value=\"48\">48 Characters<\/option>\n                <option value=\"64\">64 Characters (High Security)<\/option>\n            <\/select>\n        <\/div>\n        <div class=\"wp-api-group\">\n            <label>Format<\/label>\n            <select id=\"api-format\" onchange=\"generateMultipleKeys()\">\n                <option value=\"alphanumeric\">Alphanumeric (Standard)<\/option>\n                <option value=\"hex\">Hexadecimal (0-9, a-f)<\/option>\n                <option value=\"base62\">Base62 Friendly<\/option>\n            <\/select>\n        <\/div>\n        <div class=\"wp-api-group\">\n            <label>Number of Keys to Generate<\/label>\n            <input type=\"number\" id=\"api-count\" value=\"5\" min=\"1\" max=\"500\" oninput=\"generateMultipleKeys()\">\n        <\/div>\n    <\/div>\n\n    <div class=\"wp-api-group\">\n        <label>Generated API Keys<\/label>\n        <textarea id=\"api-output\" readonly placeholder=\"API keys will appear here...\"><\/textarea>\n    <\/div>\n\n    <div class=\"wp-api-footer\">\n        <button onclick=\"copyAllKeys()\" id=\"btn-copy-api\">Copy All<\/button>\n        <button onclick=\"downloadKeysTxt()\" class=\"btn-secondary\">Download as .txt<\/button>\n        <button onclick=\"generateMultipleKeys()\" class=\"btn-primary\" style=\"flex-grow: 1;\">Regenerate<\/button>\n    <\/div>\n\n    <style>\n        .wp-api-container { max-width: 100%; background: #fff; padding: 20px; border: 1px solid #ddd; border-radius: 10px; font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, sans-serif; color: #333; box-shadow: 0 2px 10px rgba(0,0,0,0.05); box-sizing: border-box; }\n        .wp-api-title { margin: 0 0 15px 0; color: #2271b1; font-size: 1.4rem; border-bottom: 1px solid #eee; padding-bottom: 10px; }\n        \n        .wp-api-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; margin-bottom: 15px; }\n        @media (max-width: 500px) { .wp-api-grid { grid-template-columns: 1fr; } }\n        \n        .wp-api-group { margin-bottom: 15px; display: flex; flex-direction: column; }\n        .wp-api-group label { display: block; font-size: 11px; font-weight: bold; margin-bottom: 5px; text-transform: uppercase; color: #666; }\n        .wp-api-group input, .wp-api-group select, .wp-api-group textarea { width: 100%; padding: 10px; border: 1px solid #ccc; border-radius: 5px; box-sizing: border-box; font-size: 14px; }\n        .wp-api-group input, .wp-api-group select { height: 40px; }\n        .wp-api-group textarea { height: 180px; font-family: monospace; background: #f9f9f9; resize: vertical; line-height: 1.5; white-space: pre; }\n        \n        .wp-api-footer { display: flex; gap: 10px; flex-wrap: wrap; margin-top: 15px; border-top: 1px solid #eee; padding-top: 15px; }\n        .wp-api-footer button { padding: 10px 20px; border: none; border-radius: 5px; cursor: pointer; font-weight: bold; font-size: 13px; transition: 0.2s; }\n        \n        .btn-primary { background: #2271b1; color: #fff; }\n        .btn-primary:hover { background: #135e96; }\n        .btn-secondary { background: #f0f6fb; color: #2271b1; border: 1px solid #2271b1 !important; }\n        #btn-copy-api { background: #46b450; color: #fff; }\n    <\/style>\n\n    <script>\n        function generateSecureString(length, format) {\n            var charPools = {\n                alphanumeric: \"abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789\",\n                hex: \"0123456789abcdef\",\n                base62: \"0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ\"\n            };\n            \n            var pool = charPools[format] || charPools.alphanumeric;\n            var result = \"\";\n            \n            \/\/ Cryptographically secure pseudorandom number generator (CSPRNG)\n            var randomValues = new Uint32Array(length);\n            window.crypto.getRandomValues(randomValues);\n            \n            for (var i = 0; i < length; i++) {\n                result += pool.charAt(randomValues[i] % pool.length);\n            }\n            return result;\n        }\n\n        function generateMultipleKeys() {\n            var prefix = document.getElementById(\"api-prefix\").value.trim();\n            var length = parseInt(document.getElementById(\"api-length\").value);\n            var format = document.getElementById(\"api-format\").value;\n            var count = parseInt(document.getElementById(\"api-count\").value);\n            \n            \/\/ Safety boundaries\n            if (isNaN(count) || count < 1) count = 1;\n            if (count > 500) {\n                count = 500;\n                document.getElementById(\"api-count\").value = 500;\n            }\n\n            var keys = [];\n            for (var i = 0; i < count; i++) {\n                var secureStr = generateSecureString(length, format);\n                keys.push(prefix + secureStr);\n            }\n\n            document.getElementById(\"api-output\").value = keys.join(\"\\n\");\n        }\n\n        function copyAllKeys() {\n            var out = document.getElementById(\"api-output\");\n            if (!out.value) return;\n            navigator.clipboard.writeText(out.value).then(function() {\n                var btn = document.getElementById(\"btn-copy-api\");\n                var old = btn.innerText;\n                btn.innerText = \"Copied!\";\n                setTimeout(function() { btn.innerText = old; }, 2000);\n            });\n        }\n\n        function downloadKeysTxt() {\n            var content = document.getElementById(\"api-output\").value;\n            if (!content) return;\n            \n            var blob = new Blob([content], { type: \"text\/plain;charset=utf-8\" });\n            var a = document.createElement(\"a\");\n            a.href = URL.createObjectURL(blob);\n            a.download = \"api_keys.txt\";\n            a.click();\n        }\n\n        \/\/ Generate initial batch on page load\n        window.addEventListener(\"load\", generateMultipleKeys);\n    <\/script>\n<\/div>\n\n\n<div id=\"netgu-3123200930\"><script async src=\"https:\/\/pagead2.googlesyndication.com\/pagead\/js\/adsbygoogle.js?client=ca-pub-6258556257245998\"\r\n     crossorigin=\"anonymous\"><\/script>\r\n<!-- NetGuide.io-After-Widget-Tools -->\r\n<ins class=\"adsbygoogle\"\r\n     style=\"display:block\"\r\n     data-ad-client=\"ca-pub-6258556257245998\"\r\n     data-ad-slot=\"5175852350\"\r\n     data-ad-format=\"auto\"\r\n     data-full-width-responsive=\"true\"><\/ins>\r\n<script>\r\n     (adsbygoogle = window.adsbygoogle || []).push({});\r\n<\/script><\/div>\n\n\n\n<h3 class=\"wp-block-heading\">1. Warum sind Pr\u00e4fixe wichtig?<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Unternehmen wie GitHub, Stripe oder Slack nutzen feste Pr\u00e4fixe (z. B. <code>sk_live_...<\/code> oder <code>ghp_...<\/code>). Das hat zwei massive Vorteile:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Entwickler-Sicht:<\/strong> Man erkennt im Code sofort, ob es sich um einen Produktiv-Schl\u00fcssel (<code>live<\/code>), einen Test-Schl\u00fcssel (<code>test<\/code>) oder den Key eines Drittanbieters handelt.<\/li>\n\n\n\n<li><strong>Sicherheits-Sicht:<\/strong> Automatisierte Sicherheits-Scanner (wie GitGuardian), die \u00f6ffentliche GitHub-Repositories nach aus Versehen hochgeladenen Keys durchsuchen, k\u00f6nnen dank eindeutiger Pr\u00e4fixe Keys via Regex sofort erkennen und sperren, bevor Schaden entsteht.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">2. Speicherung in der Datenbank<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">API-Schl\u00fcssel sollten in deiner Datenbank niemals im Klartext gespeichert werden! Behandle sie wie Passw\u00f6rter:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Zeige dem Benutzer den API-Key <strong>nur ein einziges Mal<\/strong> bei der Erstellung an (biete hierzu, genau wie oben, den Download an).<\/li>\n\n\n\n<li>Speichere in deiner Datenbank stattdessen nur den kryptografischen Hash (z. B. via <strong>SHA-256<\/strong>) des API-Keys. Wenn die API aufgerufen wird, hasht du den \u00fcbermittelten Key und vergleichst ihn mit dem Datenbank-Eintrag.<\/li>\n<\/ul>\n<div id=\"netgu-4206340900\" class=\"netgu-after-content netgu-entity-placement\"><script async src=\"\/\/pagead2.googlesyndication.com\/pagead\/js\/adsbygoogle.js?client=ca-pub-6258556257245998\" crossorigin=\"anonymous\"><\/script><ins class=\"adsbygoogle\" style=\"display:block;\" data-ad-client=\"ca-pub-6258556257245998\" \ndata-ad-slot=\"4559785002\" \ndata-ad-format=\"auto\"><\/ins>\n<script> \n(adsbygoogle = window.adsbygoogle || []).push({}); \n<\/script>\n<\/div>","protected":false},"excerpt":{"rendered":"<p>Secure API Key Generator Key Prefix (Optional) Key Length (Characters) 16 Characters32 Characters (Standard)48 Characters64 Characters (High Security) Format Alphanumeric [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"site-sidebar-layout":"default","site-content-layout":"","ast-site-content-layout":"default","site-content-style":"default","site-sidebar-style":"default","ast-global-header-display":"","ast-banner-title-visibility":"","ast-main-header-display":"","ast-hfb-above-header-display":"","ast-hfb-below-header-display":"","ast-hfb-mobile-header-display":"","site-post-title":"","ast-breadcrumbs-content":"","ast-featured-img":"","footer-sml-layout":"","ast-disable-related-posts":"","theme-transparent-header-meta":"","adv-header-id-meta":"","stick-header-meta":"","header-above-stick-meta":"","header-main-stick-meta":"","header-below-stick-meta":"","astra-migrate-meta-layouts":"default","ast-page-background-enabled":"default","ast-page-background-meta":{"desktop":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"ast-content-background-meta":{"desktop":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"footnotes":""},"categories":[33],"tags":[143,145,37,45],"class_list":["post-84","post","type-post","status-publish","format-standard","hentry","category-generatoren","tag-api","tag-api-key","tag-generator","tag-key"],"brizy_media":[],"_links":{"self":[{"href":"https:\/\/netguide.io\/tools\/wp-json\/wp\/v2\/posts\/84","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/netguide.io\/tools\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/netguide.io\/tools\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/netguide.io\/tools\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/netguide.io\/tools\/wp-json\/wp\/v2\/comments?post=84"}],"version-history":[{"count":1,"href":"https:\/\/netguide.io\/tools\/wp-json\/wp\/v2\/posts\/84\/revisions"}],"predecessor-version":[{"id":85,"href":"https:\/\/netguide.io\/tools\/wp-json\/wp\/v2\/posts\/84\/revisions\/85"}],"wp:attachment":[{"href":"https:\/\/netguide.io\/tools\/wp-json\/wp\/v2\/media?parent=84"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/netguide.io\/tools\/wp-json\/wp\/v2\/categories?post=84"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/netguide.io\/tools\/wp-json\/wp\/v2\/tags?post=84"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}