allinssl/frontend/packages/utils/docs/random.md

2.9 KiB
Raw Permalink Blame History

随机数生成工具函数文档

这个模块提供了一系列用于生成随机数和随机字符串的工具函数。

目录

  1. 随机数生成
  2. 随机字符串生成

随机数生成

随机整数生成

randomInt(min: number, max: number): number

生成指定范围内的随机整数。

参数:

  • min: 最小值(包含)
  • max: 最大值(包含)

示例:

randomInt(1, 10) // 返回: 1-10 之间的随机整数

随机字符串生成

基础随机字符串

randomChart(
  length: number = 32,
  options: {
    isSpecial?: boolean;
    isLower?: boolean;
    isUpper?: boolean;
    isNumber?: boolean;
  } = {}
): string

生成指定长度的随机字符串。

参数:

  • length: 字符串长度(默认 32
  • options: 配置选项
    • isSpecial: 是否包含特殊字符(默认 false
    • isLower: 是否包含小写字母(默认 true
    • isUpper: 是否包含大写字母(默认 true
    • isNumber: 是否包含数字(默认 true

示例:

// 生成默认随机字符串
randomChart() // 返回: 32位随机字符串

// 生成包含特殊字符的随机字符串
randomChart(16, { isSpecial: true })

// 仅生成数字和大写字母
randomChart(8, { isLower: false })

高级随机字符串

randomChartWithMinLength(
  length: number = 32,
  options: {
    minUpper?: number;
    minLower?: number;
    minNumber?: number;
    minSpecial?: number;
  }
): string

生成满足最小字符数要求的随机字符串。

参数:

  • length: 字符串总长度(默认 32
  • options: 最小字符数要求
    • minUpper: 大写字母最小个数(默认 1
    • minLower: 小写字母最小个数(默认 1
    • minNumber: 数字最小个数(默认 1
    • minSpecial: 特殊字符最小个数(默认 0

特点:

  • 确保生成的字符串满足各类字符的最小数量要求
  • 自动打乱字符顺序
  • 支持特殊字符

示例:

// 生成包含至少2个大写字母、2个小写字母、2个数字的16位随机字符串
randomChartWithMinLength(16, {
	minUpper: 2,
	minLower: 2,
	minNumber: 2,
})

// 生成包含特殊字符的安全密码
randomChartWithMinLength(12, {
	minUpper: 1,
	minLower: 1,
	minNumber: 1,
	minSpecial: 1,
})

特点

  1. 使用 TypeScript 编写,提供完整的类型支持
  2. 支持灵活的字符组合配置
  3. 提供基础和高级两种随机字符串生成方式
  4. 支持最小字符数量要求
  5. 自动字符顺序打乱

注意事项

  1. 随机数范围包含最小值和最大值
  2. 字符串生成会自动过滤掉易混淆的字符0oO1Ii
  3. 最小字符数要求总和不能超过总长度
  4. 特殊字符集合为 !@#$%^&*?
  5. 建议在需要安全性的场景使用 randomChartWithMinLength