@shuaninfo/random

Generate a cryptographically strong random string

Usage no npm install needed!

<script type="module">
  import shuaninfoRandom from 'https://cdn.skypack.dev/@shuaninfo/random';
</script>

README

random

生成一个强加密 的随机字符串

Can be useful for creating an identifier, slug, salt, PIN code, fixture, etc.

用于创建:标识、slug、salt、PIN code 、fixture等

安装包

$ npm install @shuaninfo/random -S
# 或
$ yarn add @shuaninfo/random

使用方法

import random from '@shuaninfo/random';
// esm
import random from '@shuaninfo/random';
// cjs
// const random = require('@shuaninfo/random').default


random({length: 10});
//=> '2cf05d94db'

random({length: 10, type: 'base64'});
//=> 'YMiMbaQl6I'

random({length: 10, type: 'url-safe'});
//=> 'YN-tqc8pOw'

random({length: 10, type: 'numeric'});
//=> '8314659141'

random({length: 6, type: 'distinguishable'});
//=> 'CDEHKM'

random({length: 10, type: 'ascii-printable'});
//=> '`#Rt8$IK>B'

random({length: 10, type: 'alphanumeric'});
//=> 'DMuKL8YtE7'

random({length: 10, characters: 'abc'});
//=> 'abaaccabac'

API

random(options)

返回一个随机字符串, 默认值: Hex

random.async(options)

返回一个Promise,默认值: Hex

对于多数用例来说,并不需要异步方法,在nodejs文档中

The crypto.randomBytes() method will not complete until there is sufficient entropy available. This should normally never take longer than a few milliseconds. The only time when generating the random bytes may conceivably block for a longer period of time is right after boot, when the whole system is still low on entropy.

通常任何异步都会有额外的开销

options

类型: object

length

Required

类型: number

字符串的长度

type

类型: string 默认: 'hex' 值: 'hex' | 'base64' | 'url-safe' | 'numeric' | 'distinguishable' | 'ascii-printable' | 'alphanumeric'

使用预定义集合中的字符

不能与type同时使用

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.

alphanumeric 集合包含大写字母、小写字母和数字:

ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789. 用于生成 nonce

characters

Type: string Min length: 1 Max length: 65536

使用预定义集合中的字符

不能与type同时使用

相关项目