🌐 SV

🔑 API-nyckelgenerator

Generera säkra slumpmässiga API-nycklar. Använd för REST API, autentiseringstoken och hemliga nycklar.

API-nyckelformat
GUIDE

Las mer

01

1. Vikten av säkerhet för API-nycklar

API-nycklar är avgörande säkerhetskomponenter för autentisering av applikationer. Svaga nycklar är sårbara för brute force-attacker, och exponering leder till obehörig API-åtkomst. Starka API-nycklar bör vara minst 32 tecken långa slumpmässiga strängar som använder kryptografiskt säkra pseudoslumptalsgeneratorer (CSPRNG). UUID v4, Base64 och Hex används ofta, och varje nyckel ska vara unik och oförutsägbar. Återkalla och ersätt exponerade nycklar omedelbart, och checka aldrig in dem i publika repositorier som GitHub.

02

2. Jämförelse av metoder för nyckelgenerering

Det finns flera metoder för att generera API-nycklar. UUID v4 använder 122 slumpmässiga bitar med extremt låg kollision sannolikhet och är brett etablerat. Base64 kodar binär data till text och ger ungefär 192 bitars entropi i 32 tecken. Hex representerar data i hexadecimal form för hög läsbarhet och erbjuder 256-bitars säkerhet i 64 tecken. Alfanumerisk använder bara bokstäver och siffror för att vara URL-säker, och prefix som sk_, api_ gör det lätt att identifiera nyckeltyper. Stripe, AWS och OpenAI använder olika nyckelformat för att skilja tjänstespecifika nycklar åt.

03

3. UUID jämfört med slumpmässiga strängar

UUID v4 är en standardiserad 128-bitars identifierare som säkerställer global unikhet. Formatet 8-4-4-4-12 (t.ex. 550e8400-e29b-41d4-a716-446655440000) har en tydlig struktur enligt RFC 4122-standarden. Anpassade slumpmässiga strängar ger flexibilitet i längd och format. UUID passar bra som primärnycklar i databaser, medan slumpmässiga strängar är mer kortfattade och praktiska för API-nycklar. Säkerhetsstyrkan är liknande, men slumpmässiga strängar gör det enklare att implementera valideringslogik med prefix och checksummor.

04

4. Rekommendationer för nyckellagring

Lagra aldrig API-nycklar i klartext. Lagra dem i miljövariabler (.env) och lägg till dem i .gitignore för att utesluta dem från versionshantering. I produktion bör du använda dedikerade system för hemlighetshantering som AWS Secrets Manager, HashiCorp Vault eller Azure Key Vault. När du lagrar i databaser, omvandla till hashvärden (SHA-256) och tillämpa kryptering (AES-256) vid behov. Undvik att hårdkoda nycklar i kod; använd Docker Secrets eller Kubernetes Secrets. Maskera nycklar i loggar för att förhindra exponering och övervaka nyckelanvändning över tid.

05

5. Policy för nyckelrotation

API-nycklar bör roteras regelbundet. Att rotera nycklar var 90:e dag är vanligt; återkalla dem omedelbart om exponering misstänks. För rotation utan driftstopp kan två nycklar vara aktiva samtidigt, du växlar till den nya nyckeln och avaktiverar sedan den gamla. AWS IAM och Google Cloud API Keys erbjuder funktioner för automatisk rotation. Sätt utgångsdatum för varje nyckel så att gamla nycklar automatiskt blir ogiltiga, och dokumentera rotationshistorik i granskningsloggar. Tokenbaserad autentisering som OAuth 2.0 eller JWT i stället för API-nycklar ger bättre säkerhet med automatisk utgång.

06

6. Hastighetsbegränsning och användningsbegränsningar

Använd alltid hastighetsbegränsning på API-nycklar för att förhindra missbruk. Sätt gränser som 100 förfrågningar per minut per IP eller 1 000 per timme per nyckel. Implementera kvoter för maximalt antal dagliga anrop och returnera 429 Too Many Requests när gränsen överskrids. Konfigurera IP-whitelistor så att nyckelanvändning endast tillåts från specifika IP-adresser och upptäck avvikande mönster (massförfrågningar på kort tid) för automatisk blockering. API-gateways som Cloudflare, Kong och AWS API Gateway förenklar implementeringen av hastighetsbegränsning. Sätt nyckelspecifika behörigheter (Scopes) för att begränsa åtkomst till till exempel endast läsning eller endast skrivning.

Vanliga fragor

Skickas genererade nycklar till en server?
Nej. Alla nycklar genereras bara i din webbläsare och skickas aldrig till en server, så de är säkra att använda.
Vilket format ska jag välja?
UUID v4 används ofta tack vare sin låga kollisionssannolikhet. Välj Alfanumerisk för URL-säkerhet, eller Hex för läsbarhet.