Slumpmässig API-nyckelgenerator - Gratis säkra 32-tecken nycklar
Generera kryptografiskt säkra API-nycklar direkt. Gratis online-verktyg skapar slumpmässiga 32-tecken alfanumeriska nycklar för autentisering. Generering på klientsidan, ingen lagring.
API-nyckelgenerator
Dokumentation
En generator för slumpmässiga API-nycklar är ett verktyg som skapar en slumpmässig teckensträng med bokstäver och siffror, avsedd att användas som en lösenordsliknande kod mellan två datorprogram. Den här körs helt i besökarens webbläsare. Användaren kan välja en nyckellängd från 8 till 128 tecken, där 32 tecken är standard.
Vad är en API-nyckel?
En API-nyckel är en teckensträng som ett program skickar med en begäran för att visa att det har behörighet att använda en tjänst. En webbserver kontrollerar nyckeln innan den besvarar begäran. Till skillnad från ett användarnamn och ett lösenord identifierar en API-nyckel vanligtvis ett program eller ett skript, inte en person.
Nycklar fungerar bäst när ingen kan gissa dem. En generator som använder äkta slump undviker de mönster som förekommer i nycklar som skrivs av en person, till exempel upprepade tecken eller korta, minnesvärda ord.
Så fungerar den här generatorn
Verktyget bygger varje nyckel från en fast uppsättning med 62 tecken: de 26 versalerna A–Z, de 26 gemenerna a–z och de 10 siffrorna 0–9. För en nyckel med längden n väljer det n tecken från uppsättningen, ett i taget.
Varje tecken hämtas från webbläsarens Web Crypto API, närmare bestämt crypto.getRandomValues(). Det är en kryptografiskt säker slumptalsgenerator (CSPRNG), till skillnad från JavaScripts Math.random(), som är förutsägbar och olämplig för säkerhetskänsliga värden.
För att välja ett rättvist tecken bland 62 alternativ från en slumpmässig byte (256 möjliga värden) kan generatorn inte helt enkelt använda byte % 62. Eftersom 256 inte kan delas jämnt med 62 skulle en vanlig modulo-operation göra de första tecknen i uppsättningen något mer sannolika än de övriga. Verktyget undviker detta med hjälp av förkastningssampling: det kastar bort varje slumpmässig byte som skulle orsaka denna skevhet och hämtar i stället en ny. Varje tecken i den slutliga nyckeln har därför samma, obiaserade sannolikhet att förekomma på varje position.
Så genererar du en API-nyckel
- Ange en nyckellängd mellan 8 och 128 tecken, eller behåll standardvärdet 32. Ett tal utanför intervallet markeras, och den närmaste tillåtna längden används i stället.
- Klicka på ”Generate”. Nyckeln visas i ett textfält och skapas helt i webbläsaren. Om du klickar i fältet markeras hela nyckeln.
- Klicka på ”Copy” för att kopiera nyckeln till urklipp. Vissa webbläsare ber om tillåtelse första gången.
- Klicka på ”Regenerate” för att skapa en ny nyckel med samma längd, eller på ”Reset” för att radera nyckeln och återgå till standardlängden 32.
Under nyckeln visar verktyget tre värden: nyckellängden i tecken, teckenuppsättningens storlek (alltid 62) och entropin i bitar.
Ingen nyckel skickas till en server, loggas eller lagras. Genereringen sker med lokal JavaScript-kod, så en kontroll av webbläsarens nätverksaktivitet under genereringen visar inga utgående begäranden.
Så beräknas antalet möjliga nycklar
Antalet olika nycklar som en viss längd kan ge följer en enkel formel:
där N är antalet möjliga nycklar, c storleken på teckenuppsättningen och n nyckellängden.
Teckenuppsättningens storlek är alltid 62 för det här verktyget. För standardlängden 32:
N = 62³² ≈ 2,27 × 10⁵⁷
Detta tal uttrycks också som entropi, mätt i bitar, med formeln:
där H är entropin i bitar.
För en nyckel med 32 tecken: 32 × log₂(62) ≈ 32 × 5,95 ≈ 190,5 bitar.
tid för att prova varje nyckel
Anta att en angripare kunde testa en miljard (10⁹) nycklar per sekund, en orealistiskt hög hastighet för alla verkliga system. Att prova alla möjliga nycklar med 32 tecken skulle ta:
2,27 × 10⁵⁷ ÷ 10⁹ = 2,27 × 10⁴⁸ sekunder ≈ 7,2 × 10⁴⁰ år
Som jämförelse är universum ungefär 1,4 × 10¹⁰ år gammalt. En brute force-sökning genom alla möjliga nycklar är inte ett praktiskt hot vid denna längd. Kortare nycklar minskar snabbt detta tal: en nyckel med 8 tecken har bara 62⁸ ≈ 2,18 × 10¹⁴ möjliga värden, som en snabb dator skulle kunna söka igenom på några dagar.
Varför program använder API-nycklar
API-nycklar ger en tjänst ett enkelt sätt att avgöra vilket program som skickar en begäran. Det har flera orsaker.
Autentisering. En server kan avvisa begäranden som kommer utan en giltig nyckel och därmed blockera det mesta av det slentrianmässiga missbruket.
Användningsspårning. Eftersom varje klient kan ha en annan nyckel kan en tjänst mäta hur mycket var och en använder den och tillämpa separata hastighetsgränser per nyckel.
Återkallande. En enskild komprometterad nyckel kan stängas av utan att påverka någon annan klient, eftersom varje nyckel är oberoende.
API-nycklar är enklare att implementera än OAuth 2,0, en autentiseringsstandard som bygger på tillfälliga, automatiskt förnyade token. OAuth passar offentliga tjänster som hanterar personuppgifter. API-nycklar är vanliga för interna verktyg, skript och anrop mellan tjänster, där en långlivad autentiseringsuppgift är acceptabel.
Säkerhetsrutiner för API-nycklar
Några rutiner minskar risken för att en nyckel läcker:
- Lagra inte nycklar i källkoden. Versionshanteringshistorik är svår att radera, och offentliga kodarkiv genomsöks ständigt efter exponerade autentiseringsuppgifter. Lagra i stället nycklar i miljövariabler eller en hemlighetshanterare.
- Byt nycklar regelbundet. Om en nyckel ersätts med några månaders mellanrum begränsas den tid som en läckt nyckel förblir användbar för en angripare.
- Ge en nyckel minsta möjliga behörighet. En nyckel som bara läser data ska inte också kunna skriva eller radera den.
- Var uppmärksam på ovanlig aktivitet, till exempel en plötslig ökning av antalet begäranden från en nyckel.
Begränsningar
Verktyget sparar inte någon historik över de nycklar det har genererat och kan därför inte garantera att en nyckel aldrig har skapats tidigare. Sannolikheten att två slumpmässiga nycklar med 32 tecken överensstämmer är ungefär 1 på (2,5 cm) 2,27 × 10⁵⁷, vilket är tillräckligt nära noll för normal användning. System som behöver en absolut garanti för unikhet, till exempel primärnycklar i databaser, bör däremot kontrollera nya värden mot befintliga värden på en server.
Teckenuppsättningen består alltid av versaler, gemener och siffror. Den innehåller inte symboler som ! eller -, vilket gör nycklarna säkra att klistra in i de flesta URL:er, HTTP-huvuden och konfigurationsfiler utan escapning.
Vanliga frågor
Vad är en generator för API-nycklar?
Det är ett verktyg som skapar slumpmässiga strängar för användning som autentiseringsuppgifter mellan program. Det här verktyget skapar nycklar med 8 till 128 tecken, valda från 62 möjliga tecken, med webbläsarens kryptografiskt säkra slumptalsgenerator.
Är en nyckel från det här verktyget tillräckligt säker för produktionsanvändning?
Själva slumpgenereringen är kryptografiskt säker. Den övergripande säkerheten beror också på hur nyckeln lagras och överförs efteråt: checka aldrig in den i versionshanteringen, skicka den alltid via HTTPS och byt den regelbundet.
Vilken längd bör jag välja?
Standardlängden på 32 tecken ger ungefär 2,27 × 10⁵⁷ möjliga kombinationer, långt fler än vad något realistiskt brute force-försök skulle kunna söka igenom. Kortare nycklar, till exempel med 16 tecken, kan passa för interna verktyg med låg risk. Mycket långa nycklar ger ett begränsat extra skydd men är svårare att lagra och klistra in.
Kan jag ange en egen längd?
Ja. Längdfältet accepterar alla heltal från 8 till 128. Själva teckenuppsättningen (A–Z, a–z, 0–9) förblir oförändrad.
Lagrar eller överför verktyget de nycklar som det genererar?
Nej. Varje nyckel genereras med lokal JavaScript-kod i webbläsaren. Ingenting skickas till en server, loggas eller sparas.
Vad är skillnaden mellan en API-nyckel och en OAuth-token?
En API-nyckel är en långlivad autentiseringsuppgift som förblir giltig tills någon återkallar den. En OAuth-token upphör automatiskt att gälla efter en viss tid och kan förnyas utan direkt medverkan från användaren. OAuth passar offentliga tjänster som hanterar personuppgifter; API-nycklar passar enklare, interna eller utvecklingsrelaterade användningsområden.
Vilka webbläsare stöder det här verktyget?
Alla webbläsare som tillhandahåller Web Crypto API, vilket omfattar alla versioner av Chrome, Firefox, Safari, Edge och Opera som har släppts under det senaste årtiondet. Om API:et saknas visar verktyget ett felmeddelande. Det använder aldrig Math.random() som reserv, eftersom den inte är säker.