# crypt.random 库模块帮助文档

[安全随机数](https://www.aardio.com/zh-cn/docs/library-guide/builtin/string/rand.html#csprng)

## crypt 成员列表 <a id="crypt" href="#crypt">&#x23;</a>

### crypt.random <a id="crypt.random" href="#crypt.random">&#x23;</a>
基于系统熵源（System Entropy Source）的密码学安全随机数生成器（CSPRNG）。  
系统熵源来自不可预测的操作系统随机事件，例如  
鼠标的移动与点击，按键，磁盘读写，网络数据到达等随机性事件。  

> math.random,string.random 属于伪随机数生成器（PRNG），  
伪随机数的生成速度更快。

### crypt.random() <a id="crypt.random" href="#crypt.random">&#x23;</a>
创建并返回安全随机数生成器。

[返回对象:CryptRandomObject](#CryptRandomObject)

### crypt.random(length) <a id="crypt.random" href="#crypt.random">&#x23;</a>
生成参数 @length 指定长度的随机密钥，返回 字节串（buffer 类型）。  
参数 @length 必须大于 0。

### crypt.random(length,seed) <a id="crypt.random" href="#crypt.random">&#x23;</a>
生成参数 @length 指定长度的随机密钥，返回 字节串（buffer 类型）。  
参数 @length 必须大于 0。  
参数 @seed 可选用字符串、buffer、指针、结构体等指定辅助性的随机数种子（不必要）。

### crypt.random(min,max) <a id="crypt.random" href="#crypt.random">&#x23;</a>
生成指定整数范围的随机整数，可使用 tostring 将返回数值转换为字符串。  
@min 指定最小随机整数，@max 指定最大随机整数。  
参数不能小于 0。

## CryptRandomObject 成员列表 <a id="CryptRandomObject" href="#CryptRandomObject">&#x23;</a>

### CryptRandomObject.buffer(length) <a id="CryptRandomObject.buffer" href="#CryptRandomObject.buffer">&#x23;</a>
生成参数 @length 指定长度的随机密钥，返回 字节串（buffer 类型）。  
参数 @length 必须大于 0。

### CryptRandomObject.buffer(length,seed) <a id="CryptRandomObject.buffer" href="#CryptRandomObject.buffer">&#x23;</a>
生成参数 @length 指定长度的随机密钥，返回 字节串（buffer 类型）。  
参数 @length 必须大于 0。  
参数 @seed 可选用字符串、buffer、指针、结构体等指定辅助性的随机数种子（不必要）。

### CryptRandomObject.integer(min,max) <a id="CryptRandomObject.integer" href="#CryptRandomObject.integer">&#x23;</a>
生成指定整数范围的随机整数。  
@min 指定最小随机整数，@max 指定最大随机整数。  
参数不能小于 0。

### CryptRandomObject.number() <a id="CryptRandomObject.number" href="#CryptRandomObject.number">&#x23;</a>
生成 0 到  1 之间的随机小数。

### CryptRandomObject.string(length, charset)) <a id="CryptRandomObject.string" href="#CryptRandomObject.string">&#x23;</a>
生成参数 @length 指定长度的随机字符串。  
可选用字符串参数 @charset 自定义字符集。  
不指定  @charset 则使用 crypt.random.defaultCharset 作为参数。  
默认字符集包含大小写英文字母与所有数字
