Generate 1 to 1,000 random strings from letters, digits, hex, Base58 or your own characters, with prefixes, grouping and entropy shown. Nothing is saved.
Test fixtures, coupon codes, API keys, invite links: they all need a string nobody can predict. This generator makes up to 1,000 of them at once, all different from each other, from whichever characters the job allows.
It opens on ten 16-character strings of letters and digits, which is 95.3 bits each, and makes a fresh batch every time you change a setting. If all you need is one key with a familiar prefix such as sk_test_, the API Key Generator is the quicker tool; this one is for custom alphabets and long lists.
sk_live_, or split each string into groups, for example every 4 characters with a dash for a licence-key look.Skip look-alikes is easy to overlook and worth it for anything a person will read aloud or type from paper: it drops 0, O, o, 1, l, I, |, 5, S, 2, Z, 8 and B, which shrinks letters plus digits from 62 characters to 50.
Each character comes from crypto.getRandomValues, the browser’s cryptographic generator. Taking a random 32-bit number modulo the alphabet size would favour the first few characters slightly, so values from the uneven tail are thrown away and redrawn, and every character is exactly equally likely. In a custom alphabet, Use every ticked type at least once redraws the whole string until the rule holds, rather than swapping one character in, which would make that position predictable.
Entropy is length × log₂(alphabet size): 16 characters from 62 gives 95.3 bits, 32 hex characters give 128. With No repeated characters on, it is log₂ of the number of arrangements instead, so ten digits with no repeats carry 21.8 bits, not 33.2. Around 128 bits is the usual bar for a secret token.
Untick every set and leave the extra box empty, and the tool says “Pick at least one character set or type your own characters.” Ask for more strings than can exist, such as 20 three-character strings of 0 and 1 (only 8 are possible), and you get all 8 with a note explaining why. A length shorter than the number of ticked types, or no-repeats on a string longer than its alphabet, is refused with the numbers that clash. Your settings are remembered; the strings themselves are never saved, because some of them will be secrets.
Characters
Alphabet (62): abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789
Entropy per string
95.3 bits
Possible strings
4.8 × 10^28
Good for
IDs, invite codes
Made in your browser with crypto.getRandomValues. The strings are never saved or sent anywhere; your settings are remembered.