random

package module
v0.1.1 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Apr 16, 2026 License: MIT Imports: 2 Imported by: 0

README

random

安全的随机字符生成包,基于 crypto/rand 提供密码学安全的随机性。

功能特性

  • 密码学安全的随机生成
  • 多种预定义字符集
  • 支持自定义字符集
  • 并发安全
  • 零依赖

安装

go get github.com/f2xme/gox/random

快速开始

package main

import (
    "fmt"
    "github.com/f2xme/gox/random"
)

func main() {
    // 生成 10 位随机数字
    code, _ := random.Numeric(10)
    fmt.Println(code) // 例如: 8472951063

    // 生成 16 位字母数字混合
    token, _ := random.AlphaNumeric(16)
    fmt.Println(token) // 例如: aB3xK9mP2qR7sT4u

    // 生成 8 位小写字母
    id, _ := random.AlphaLower(8)
    fmt.Println(id) // 例如: xkpmqrst

    // 使用自定义字符集
    custom, _ := random.String(12, "ABCDEF0123456789")
    fmt.Println(custom) // 例如: A3F0B2E1D4C5
}

API 文档

预定义字符集
const (
    Digits       = "0123456789"
    LowerLetters = "abcdefghijklmnopqrstuvwxyz"
    UpperLetters = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
    Letters      = LowerLetters + UpperLetters
    Alphanumeric = Letters + Digits
)
函数
String
func String(length int, charset string) (string, error)

生成指定长度的随机字符串,使用给定的字符集。

Numeric
func Numeric(length int) (string, error)

生成指定长度的随机数字字符串(0-9)。

Alpha
func Alpha(length int) (string, error)

生成指定长度的随机字母字符串(大小写混合)。

AlphaLower
func AlphaLower(length int) (string, error)

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

AlphaUpper
func AlphaUpper(length int) (string, error)

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

AlphaNumeric
func AlphaNumeric(length int) (string, error)

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

使用场景

  • 验证码生成
  • 临时密码
  • API Token
  • 会话 ID
  • 邀请码
  • 短链接 ID

注意事项

  • 所有函数使用 crypto/rand 提供密码学安全的随机性
  • 适用于安全敏感场景(密码、令牌等)
  • 如果 length <= 0charset 为空,返回空字符串
  • 错误通常来自底层的 crypto/rand,在正常系统上极少发生

Documentation

Overview

Package random 提供安全的随机字符生成功能。

基于 crypto/rand 实现,提供密码学安全的随机性,适用于生成验证码、 临时密码、API Token 等安全敏感场景。

功能特性

  • 密码学安全:使用 crypto/rand 提供密码学级别的随机性
  • 多种字符集:支持数字、字母、字母数字等预定义字符集
  • 自定义字符集:可以指定任意字符集生成随机字符串
  • 并发安全:所有函数都是并发安全的
  • 零依赖:除标准库外无其他依赖

快速开始

基本使用:

package main

import (
	"fmt"
	"log"

	"github.com/f2xme/gox/random"
)

func main() {
	// 生成 6 位数字验证码
	code, err := random.Numeric(6)
	if err != nil {
		log.Fatal(err)
	}
	fmt.Println("验证码:", code) // 例如: 847295

	// 生成 16 位字母数字混合 Token
	token, err := random.AlphaNumeric(16)
	if err != nil {
		log.Fatal(err)
	}
	fmt.Println("Token:", token) // 例如: aB3xK9mP2qR7sT4u

	// 生成 8 位小写字母 ID
	id, err := random.AlphaLower(8)
	if err != nil {
		log.Fatal(err)
	}
	fmt.Println("ID:", id) // 例如: xkpmqrst
}

使用场景

验证码生成:

// 生成 6 位数字验证码
code, _ := random.Numeric(6)

API Token 生成:

// 生成 32 位字母数字 Token
token, _ := random.AlphaNumeric(32)

临时密码生成:

// 生成 12 位字母数字混合密码
password, _ := random.AlphaNumeric(12)

自定义字符集:

// 生成 16 位十六进制字符串
hex, _ := random.String(16, "0123456789ABCDEF")

// 生成 8 位不含易混淆字符的字符串
safe, _ := random.String(8, "23456789ABCDEFGHJKLMNPQRSTUVWXYZ")

注意事项

  • 所有函数使用 crypto/rand 提供密码学安全的随机性,适用于安全敏感场景
  • 如果 length <= 0 或 charset 为空,返回空字符串和 nil 错误
  • 错误通常来自底层的 crypto/rand.Reader,在正常系统上极少发生
  • 生成的随机字符串不保证唯一性,如需唯一 ID 请使用 idgen 包

Package random 提供安全的随机字符生成功能

支持多种字符集:

  • 数字 (0-9)
  • 小写字母 (a-z)
  • 大写字母 (A-Z)
  • 字母数字混合
  • 自定义字符集

所有函数使用 crypto/rand 提供密码学安全的随机性

Index

Constants

View Source
const (
	// Digits 数字字符集
	Digits = "0123456789"
	// LowerLetters 小写字母字符集
	LowerLetters = "abcdefghijklmnopqrstuvwxyz"
	// UpperLetters 大写字母字符集
	UpperLetters = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
	// Letters 字母字符集(大小写)
	Letters = LowerLetters + UpperLetters
	// Alphanumeric 字母数字字符集
	Alphanumeric = Letters + Digits
)

Variables

This section is empty.

Functions

func Alpha

func Alpha(length int) (string, error)

Alpha 生成指定长度的随机字母字符串(大小写混合)

func AlphaLower

func AlphaLower(length int) (string, error)

AlphaLower 生成指定长度的随机小写字母字符串

func AlphaNumeric

func AlphaNumeric(length int) (string, error)

AlphaNumeric 生成指定长度的随机字母数字字符串

func AlphaUpper

func AlphaUpper(length int) (string, error)

AlphaUpper 生成指定长度的随机大写字母字符串

func Numeric

func Numeric(length int) (string, error)

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

func String

func String(length int, charset string) (string, error)

String 生成指定长度的随机字符串,使用给定的字符集 如果 length <= 0 或 charset 为空,返回空字符串

Types

This section is empty.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL