crypto-random-string
Generate a cryptographically strong random string
Deno module based on crypto-random-string. Useful for creating an identifier, slug, salt, PIN code, fixture, etc.
Import Module
import { cryptoRandomString, cryptoRandomStringAsync } from "https://deno.land/x/crypto_random_string@1.0.0/mod.ts"
// or
import { cryptoRandomString, cryptoRandomStringAsync } from "https://github.com/piyush-bhatt/crypto-random-string/raw/main/mod.ts"
Usage
NOTE: Outputs shown below are merely examples. The function will generate random string each time.
cryptoRandomString({length: 10}); // '0696cb9e70'
await cryptoRandomStringAsync({length: 10}); // 'c8d4b0140d'
cryptoRandomString({length: 10, type: 'base64'}); // 'dw3mgWC5uO'
await cryptoRandomStringAsync({length: 10, type: 'base64'}); // 'k6ALljZx+E'
cryptoRandomString({length: 10, type: 'url-safe'}); // '0pN1Y2Jz.X'
await cryptoRandomStringAsync({length: 10, type: 'url-safe'}); // '7.F5oBY9Qy'
cryptoRandomString({length: 10, type: 'numeric'}); // '1639380067'
await cryptoRandomStringAsync({length: 10, type: 'numeric'}); // '0923903115'
cryptoRandomString({length: 6, type: 'distinguishable'}); // 'H4HH5D'
await cryptoRandomStringAsync({length: 6, type: 'distinguishable'}); // 'D2Y254'
cryptoRandomString({length: 10, type: 'ascii-printable'}); // '#I&J.GP./9'
await cryptoRandomStringAsync({length: 10, type: 'ascii-printable'}); // '7t%FxZkyL('
cryptoRandomString({length: 10, type: 'alphanumeric'}); // 'ZtgC2J6aU5'
await cryptoRandomStringAsync({length: 10, type: 'alphanumeric'}); // 'FELQVN9S8H'
cryptoRandomString({length: 10, characters: 'abc'}); // 'abcabccbcc'
await cryptoRandomStringAsync({length: 10, characters: 'abc'}); // 'abcbbbacbb'
API
cryptoRandomString(options)
Returns a randomized string. Hex by default.
cryptoRandomStringAsync(options)
Returns a promise which resolves to a randomized string. Hex by default.
options
Type: object
length
Required
Type: number
Length of the returned string.
type
Type: string
Default: 'hex'
Values: 'hex' | 'base64' | 'url-safe' | 'numeric' | 'distinguishable' | 'ascii-printable' | 'alphanumeric'
Use only characters from a predefined set of allowed characters.
Cannot be set at the same time as the characters
option.
The distinguishable
set contains only uppercase characters that are not easily confused: CDEHKMPRTUWXY012458
. It can be useful if you need to print out a short string that you'd like users to read and type back in with minimal errors. For example, reading a code off of a screen that needs to be typed into a phone to connect two devices.
The ascii-printable
set contains all printable ASCII characters: !"#$%&\'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~
Useful for generating passwords where all possible ASCII characters should be used.
The alphanumeric
set contains uppercase letters, lowercase letters, and digits: ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789
. Useful for generating nonce values.
characters
Type: string
Minimum length: 1
Maximum length: 65536
Use only characters from a custom set of allowed characters.
Cannot be set at the same time as the type
option.
Licensing
MIT licensed