Tilfældig API-nøglegenerator - Gratis Sikre 32-Tegns Nøgler
Generer kryptografisk sikre API-nøgler øjeblikkeligt. Gratis online værktøj opretter tilfældige 32-tegns alfanumeriske nøgler til godkendelse. Generering på klientsiden, ingen lagring.
API-nøglegenerator
Dokumentation
En generator til tilfældige API-nøgler er et værktøj, der opretter en tilfældig streng af bogstaver og tal, som kan bruges som en adgangskodelignende kode mellem to computerprogrammer. Denne kører udelukkende i den besøgendes webbrowser. Brugeren kan vælge en nøglelængde fra 8 til 128 tegn, hvor 32 tegn er standardindstillingen.
Hvad er en API-nøgle?
En API-nøgle er en tegnstreng, som et program sender sammen med en forespørgsel for at bevise, at det har tilladelse til at bruge en tjeneste. En webserver kontrollerer nøglen, før den besvarer forespørgslen. I modsætning til et brugernavn og en adgangskode identificerer en API-nøgle normalt en applikation eller et script, ikke en person.
Nøgler fungerer bedst, når ingen kan gætte dem. En generator, der bruger ægte tilfældighed, undgår de mønstre, der optræder i nøgler, som en person indtaster, f.eks. gentagne tegn eller korte, lette ord.
Sådan fungerer denne generator
Værktøjet opbygger hver nøgle ud fra et fast sæt på 62 tegn: de 26 store bogstaver A–Z, de 26 små bogstaver a–z og de 10 cifre 0–9. For en nøgle med længden n vælger det n tegn fra dette sæt, ét ad gangen.
Hvert tegn kommer fra browserens Web Crypto API, nærmere bestemt crypto.getRandomValues(). Dette er en kryptografisk sikker generator af tilfældige tal (CSPRNG), i modsætning til Javascripts Math.random(), som er forudsigelig og uegnet til sikkerhedsfølsomme værdier.
For at vælge et retfærdigt tegn blandt 62 muligheder ud fra en tilfældig byte (256 mulige værdier) kan generatoren ikke bare bruge byte % 62. Da 256 ikke går jævnt op i 62, ville en simpel restoperator gøre de første tegn i sættet en smule mere sandsynlige end resten. Værktøjet undgår dette med forkastningssampling: Det kasserer alle tilfældige bytes, der ville skabe denne skævhed, og trækker i stedet en ny. Hvert tegn i den endelige nøgle har derfor samme, ubiaserede sandsynlighed for at optræde på hver position.
Sådan genererer du en API-nøgle
- Indtast en nøglelængde på mellem 8 og 128 tegn, eller behold standarden på 32. Et tal uden for dette interval markeres, og den nærmeste tilladte længde bruges i stedet.
- Klik på "Generér". Nøglen vises i et tekstfelt, der oprettes udelukkende i browseren. Når du klikker på feltet, markeres hele nøglen.
- Klik på "Kopiér" for at kopiere nøglen til udklipsholderen. Nogle browsere beder om tilladelse første gang.
- Klik på "Generér igen" for at oprette en ny nøgle med samme længde, eller på "Nulstil" for at rydde nøglen og vende tilbage til standardlængden på 32.
Under nøglen viser værktøjet tre tal: nøglens længde i tegn, tegnsættets størrelse (altid 62) og entropien i bit.
Ingen nøgle sendes til en server, logføres eller gemmes. Genereringen sker med lokal JavaScript-kode, så en kontrol af browserens netværksaktivitet under genereringen viser ingen udgående forespørgsler.
Sådan beregnes antallet af mulige nøgler
Antallet af forskellige nøgler, der kan oprettes med en given længde, følger en enkel formel:
hvor N er antallet af mulige nøgler, c størrelsen på tegnsættet, og n nøglens længde.
Tegnsættets størrelse er altid 62 for dette værktøj. For standardlængden på 32:
N = 62³² ≈ 2,27 × 10⁵⁷
Dette tal kan også udtrykkes som entropi, målt i bit, ved hjælp af formlen:
hvor H er entropien målt i bit.
For en nøgle på 32 tegn: 32 × log₂(62) ≈ 32 × 5,95 ≈ 190,5 bit.
Tid til at prøve alle nøgler
Antag, at en angriber kunne teste en milliard (10⁹) nøgler i sekundet, hvilket er urealistisk hurtigt for ethvert virkeligt system. Det ville tage følgende tid at prøve alle mulige nøgler på 32 tegn:
2,27 × 10⁵⁷ ÷ 10⁹ = 2,27 × 10⁴⁸ sekunder ≈ 7,2 × 10⁴⁰ år
Til sammenligning er universet omkring 1,4 × 10¹⁰ år gammelt. En brute force-søgning gennem alle mulige nøgler er ikke en praktisk trussel ved denne længde. Kortere nøgler reducerer tallet hurtigt: En nøgle på 8 tegn har kun 62⁸ ≈ 2,18 × 10¹⁴ mulige værdier, som en hurtig computer kunne søge igennem på få dage.
Hvorfor applikationer bruger API-nøgler
API-nøgler giver en tjeneste en enkel måde at se, hvilken applikation der sender en forespørgsel. Det har flere årsager.
Godkendelse. En server kan afvise forespørgsler, der ankommer uden en gyldig nøgle, og dermed blokere det meste tilfældige misbrug.
Brugssporing. Da hver klient kan have en anden nøgle, kan en tjeneste måle, hvor meget hver klient bruger, og anvende separate hastighedsgrænser for hver nøgle.
Tilbagekaldelse. En enkelt kompromitteret nøgle kan deaktiveres uden at påvirke andre klienter, fordi hver nøgle er uafhængig.
API-nøgler er enklere at implementere end OAuth 2,0, en godkendelsesstandard baseret på midlertidige tokens, der automatisk fornyes. OAuth egner sig til offentligt tilgængelige tjenester, der håndterer personlige brugerdata. API-nøgler er almindelige til interne værktøjer, scripts og kald mellem tjenester, hvor langvarige legitimationsoplysninger er acceptable.
Sikkerhedspraksis for API-nøgler
Nogle praksisser reducerer risikoen for en lækket nøgle:
- Gem ikke nøgler i kildekode. Versionsstyringshistorik er svær at slette, og offentlige arkiver scannes konstant for eksponerede legitimationsoplysninger. Gem i stedet nøgler i miljøvariabler eller en håndteringstjeneste til hemmeligheder.
- Udskift nøgler med jævne mellemrum. Udskiftning af en nøgle med få måneders mellemrum begrænser, hvor længe en lækket nøgle kan bruges af en angriber.
- Giv en nøgle mindst mulig adgang. En nøgle, der kun læser data, bør ikke også kunne skrive eller slette dem.
- Hold øje med usædvanlig aktivitet, f.eks. en pludselig stigning i antallet af forespørgsler fra én nøgle.
Begrænsninger
Dette værktøj gemmer ikke en oversigt over de nøgler, det har genereret, så det kan ikke garantere, at en nøgle aldrig er blevet oprettet før. Sandsynligheden for, at to tilfældige nøgler på 32 tegn er ens, er omkring 1 ud af (2,5 cm) 2,27 × 10⁵⁷, hvilket er tæt nok på nul til almindelig brug, men systemer, der kræver en absolut garanti for entydighed, f.eks. primærnøgler i databaser, bør kontrollere nye værdier mod eksisterende værdier på en server.
Tegnsættet består fast af store bogstaver, små bogstaver og cifre. Det omfatter ikke symboler som ! eller -, hvilket gør det sikkert at indsætte nøgler i de fleste URL'er, headere og konfigurationsfiler uden at skulle bruge escape-tegn.
Ofte stillede spørgsmål
Hvad er en generator til API-nøgler?
Det er et værktøj, der opretter tilfældige strenge til brug som legitimationsoplysninger til godkendelse mellem softwareapplikationer. Dette værktøj opretter nøgler på 8 til 128 tegn, valgt blandt 62 mulige tegn ved hjælp af browserens kryptografisk sikre generator af tilfældige tal.
Er en nøgle fra dette værktøj sikker nok til brug i produktion?
Selve tilfældigheden er kryptografisk sikker. Den samlede sikkerhed afhænger også af, hvordan nøglen gemmes og overføres bagefter: Læg den aldrig i versionsstyring, send den altid over HTTPS, og udskift den regelmæssigt.
Hvilken længde bør jeg vælge?
Standardlængden på 32 tegn giver omkring 2,27 × 10⁵⁷ mulige kombinationer, langt flere end noget realistisk brute force-forsøg kunne søge igennem. Kortere nøgler, f.eks. på 16 tegn, kan være passende til interne værktøjer med lav risiko. Meget lange nøgler giver kun lidt ekstra beskyttelse, men er sværere at gemme og indsætte.
Kan jeg angive en brugerdefineret længde?
Ja. Længdefeltet accepterer alle hele tal fra 8 til 128. Selve tegnsættet (A–Z, a–z, 0–9) forbliver uændret.
Gemmer eller overfører værktøjet de nøgler, det genererer?
Nej. Hver nøgle genereres med lokal JavaScript-kode i browseren. Intet sendes til en server, logføres eller gemmes.
Hvad er forskellen mellem en API-nøgle og et OAuth-token?
En API-nøgle fungerer som langvarige legitimationsoplysninger, der forbliver gyldige, indtil nogen tilbagekalder dem. Et OAuth-token udløber automatisk efter et bestemt tidsrum og kan fornyes uden direkte involvering fra brugeren. OAuth passer til offentlige tjenester, der håndterer persondata, mens API-nøgler passer til enklere, interne eller udviklingsrelaterede formål.
Hvilke browsere understøtter dette værktøj?
Alle browsere, der leverer Web Crypto API, hvilket omfatter alle versioner af Chrome, Firefox, Safari, Edge og Opera, der er udgivet inden for det seneste årti. Hvis denne API mangler, viser værktøjet en fejlmeddelelse. Det falder aldrig tilbage til Math.random(), som ikke er sikker.