Willekeurige String Generator — hoe en waarom veilige tokens, wachtwoorden en sleutels genereren
Een willekeurige string generator is een tool voor het maken van tekenreeksen uit een gegeven set (alfabet, cijfers, speciale tekens) van de gewenste lengte. Dergelijke strings worden gebruikt in softwareontwikkeling, testen, informatiebeveiliging en systeembeheer. Onze generator werkt op basis van het cryptografisch veilige algoritme crypto.getRandomValues(), ingebouwd in elke moderne browser.
Cryptografische veiligheid: waarom dit belangrijk is
Niet alle willekeurige getallengeneratoren zijn hetzelfde. De gewone Math.random() in JavaScript is pseudowillekeurig en voorspelbaar — het is niet geschikt voor het genereren van wachtwoorden, tokens of versleutelingssleutels. De methode crypto.getRandomValues() behoort tot de klasse CSPRNG (Cryptographically Secure Pseudo-Random Number Generator) en gebruikt de entropiebron van het besturingssysteem. Deze zelfde methode wordt gebruikt in TLS/SSL, Web Crypto API, het genereren van JWT-tokens en andere kritieke systemen. Onze generator gebruikt uitsluitend de crypto API, wat maximale sterkte van gegenereerde strings garandeert.
Wachtwoordgeneratie: lengte, entropie, sterkte
Een veilig wachtwoord heeft voldoende entropie — een maat voor onvoorspelbaarheid. Entropie wordt berekend als de stringlengte vermenigvuldigd met de logaritme van de alfabetgrootte met grondtal 2. Voor een wachtwoord uit de set a-z, A-Z, 0-9 (62 tekens) voegt elk teken ~5,95 bits entropie toe. Een wachtwoord van 12 tekens heeft ~71 bits, 16 tekens — ~95 bits, 20 tekens — ~119 bits. NIST-aanbevelingen (SP 800-63B) schrijven minimaal 8 tekens voor voor online diensten, maar de moderne praktijk is 14-20 tekens met gemengde set.
Autorisatietokens en API-sleutels
Tokens (access token, refresh token, API-sleutel) zijn geheime strings die toegangsrechten tot een bron bevestigen. Voor API-sleutels is de standaardlengte 32-64 alfanumerieke tekens, die 190-380 bits entropie bieden. Sessie-identificaties moeten minimaal 128 bits entropie hebben volgens OWASP-aanbevelingen. CSRF-tokens, nonce-waarden en eenmalige bevestigingscodes worden ook gegenereerd met CSPRNG.
UUID v4: universeel unieke identificatie
UUID v4 (RFC 4122) is een 128-bits identificatie waarbij 122 bits willekeurig zijn en 6 bits gereserveerd zijn voor versie en variant. Formaat: xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx, waarbij y een van de tekens 8, 9, a, b is. UUID v4 biedt 2^122 (~5,3 × 10^36) mogelijke waarden, waardoor de kans op botsing verwaarloosbaar klein is, zelfs bij het genereren van miljarden identificaties. UUID wordt veel gebruikt als primaire sleutel in PostgreSQL, MongoDB, microservice-architecturen en gedistribueerde systemen.
HEX en Base64: coderingsformaten
HEX (hexadecimale codering) vertegenwoordigt elke byte met twee tekens (0-9, a-f). Gebruikt voor hashes (SHA-256 = 64 HEX-tekens), MAC-adressen, CSS-kleuren (#FF5733) en versleutelingssleutels. Base64 codeert drie bytes met vier tekens uit het alfabet A-Z, a-z, 0-9, +, / (en = voor opvulling). Toegepast voor het coderen van JWT, het insluiten van afbeeldingen in HTML (data URI), het verzenden van binaire gegevens in JSON en XML.
Salt en wachtwoordhashing
Salt is een willekeurige string toegevoegd aan het wachtwoord vóór hashing om te beschermen tegen rainbow tables en brute force-aanvallen. Elke gebruiker moet een unieke salt hebben. De aanbevolen saltlengte is minimaal 16 bytes (32 HEX-tekens of 22 Base64-tekens). Moderne hashing-algoritmen (bcrypt, Argon2, scrypt) genereren salt automatisch, maar voor andere scenario's — bijvoorbeeld HMAC of versleuteling — moet salt apart worden gegenereerd.
Testgegevens voor ontwikkeling
Willekeurige strings zijn onmisbaar bij testen: formuliervelden invullen, mockgegevens maken, belastingstesten, validatie en lengtebeperkingen verifiëren. De generator stelt je in staat om snel duizend strings van de benodigde lengte met elke tekenset te maken — en ze te downloaden als tekstbestand voor import in een testdatabase of script.
Beveiligingstips bij het werken met geheime strings
Gegenereerde wachtwoorden, sleutels en tokens moeten worden opgeslagen in een wachtwoordbeheerder (1Password, Bitwarden, KeePass) of in een beveiligde geheimen-vault (HashiCorp Vault, AWS Secrets Manager, GCP Secret Manager). Sla nooit geheimen op in platte tekst in code, configuraties of repository (git). Gebruik voor het overdragen van geheimen tussen teamleden versleutelde kanalen of eenmalige links (bijvoorbeeld OneTimeSecret). Sleutel- en tokenrotatie is verplicht: wijzig API-sleutels en servicetokens minimaal elke 90 dagen.