SecureRandom做随机源,这个Java随机字符串工具类有3个方法

简介: 这是一个基于SecureRandom的Java随机字符串生成工具类,支持三种模式:默认62字符随机串、纯数字串、自定义字符集生成,适用于验证码、邀请码等场景,JDK17+可用,线程安全且无取模偏差。(239字)

📋 目录

一、工具类功能

按指定长度和字符集生成随机字符串,默认大小写字母加数字共 62 个字符,随机源是 SecureRandom,验证码、邀请码、盐值这类随机串直接拿来用。

二、所需环境

JDK 17或以上

三、方法与调用示例(按需调用)

🔢 方法序号:1

🎯 方法用途:

  • 在默认的 62 个字符(大小写字母加数字)里随机取满指定位数
  • 临时口令、文件随机后缀这类只要「不好猜」的场合用它

🧩 方法定义:public static String generate(int length)

🗣️ 入参解释:public static String generate(长度)

📤 返回值解释:String,指定长度的随机串,大小写与数字都可能出现

💡 边界口径:

  • 随机源是类内静态共享的 SecureRandom,加密强度且线程安全,可并发调用
  • 下标由 nextInt 生成,不做位运算取模,没有取模偏差
  • 每次独立取样,不去重,不保证唯一
  • length 必须大于 0,否则抛 IllegalArgumentException

🧪 方法示例:

  • generate(16) 拿到 N6PVsl9cOaUHKdiN,长度 16
  • 同样长度调用两次比是否相同,拿到 false
  • generate(0) 抛 length 必须大于 0,实际为: 0

🔢 方法序号:2

🎯 方法用途:

  • 生成纯数字串,短信验证码、支付密码键盘这类只认数字的场景
  • 结果按字符串给,首位可以是 0,不参与数值运算

🧩 方法定义:public static String generateDigits(int length)

🗣️ 入参解释:public static String generateDigits(长度)

📤 返回值解释:String,指定长度的数字串,首位可为 0

💡 边界口径:

  • 是数字串不是整数,别转成 int 或 long 存,20 位连 long 都装不下
  • 首位为 0 是正常结果,判重与比较都要按字符串做
  • 字符集是完整的 0 到 9,没有剔除易混数字
  • 参数校验与 generate(int) 一致

🧪 方法示例:

  • generateDigits(6) 拿到 078418,首位就是 0
  • 跑 2000 次统计首位为 0 的次数,拿到 214 次,首位 0 出现得很常规
  • generateDigits(20) 拿到 86716898581329239360,20 位已经超出 long 范围

🔢 方法序号:3

🎯 方法用途:

  • 在自定义字符集里随机取值,把取值范围收窄到不会引起歧义的字符
  • 邀请码、短链码这类要人工抄写的串用它,字符集自己定

🧩 方法定义:public static String generate(int length, String alphabet)

🗣️ 入参解释:public static String generate(长度, 候选字符集)

📤 返回值解释:String,只由候选字符集里的字符组成的随机串

💡 边界口径:

  • 字符集按 Unicode 码点展开,含 Emoji 等增补字符也不会产出半个代理对
  • 字符集只有一个字符时退化成把它重复 length 遍
  • 组合数是「字符集大小 的 length 次方」,去重必须业务自己判,随机数自带不了唯一性
  • alphabet 为 null 抛 NullPointerException,为空串抛 IllegalArgumentException

🧪 方法示例:

  • 32 个字符的邀请码集 generate(8, INVITE_ALPHABET) 拿到 RZQHRGYZ,是否全在候选集内为 true
  • 字符集含 Emoji 时 generate(6, emojiAlphabet) 拿到 6 个码点的串长度是 8,串里没有孤立代理项
  • 字符集只给一个字符时 generate(5, "x") 拿到 xxxxx
  • 32 个字符取 4 位生成 10 万个码,重复数量拿到 4602 个,唯一性必须业务侧判重
  • generate(6, "") 抛 alphabet 不能为空
  • generate(6, null) 抛 alphabet 不能为 null

四、工具类源码(可直接复制)

📦 源码文件

相关文章
|
7天前
|
JavaScript API iOS开发
DeepSeek Harness下载、安装、配置一篇搞定(2026整理,送常用插件)
DeepSeek Harness(DSH)是DeepSeek于2026年开源的MIT协议AI Agent框架,支持插件化组装模型、工具、沙箱与UI,兼容主流大模型。本文提供免Node.js的桌面端安装包(Win/macOS),含详细图文教程及热门插件推荐。
3075 27
|
1天前
|
云安全 人工智能 安全
|
6天前
|
Linux 开发工具 iOS开发
Codex保姆级教程(下载+安装+登录+使用,含所有版本,2026最新)
Codex是OpenAI推出的开源AI编程智能体,本地运行,可理解整个代码库,支持自然语言指令改代码、执行命令、跑测试、修Bug,兼容Win/macOS/Linux。(239字)
|
7天前
|
iOS开发 Docker MacOS
【2026实测】Docker Desktop下载、安装、汉化、配置教程(附官网安装包)
Docker Desktop 是 Docker 官方推出的桌面容器管理工具,集成引擎、CLI、图形界面与 Kubernetes,支持 Win/macOS/Linux。2026 最新版 4.88.1 强化 ARM 原生运行、镜像加速及资源可视化,附中文汉化与国内镜像配置指南。
1352 5
|
云安全 安全 网络安全
|
7天前
|
安全 算法 定位技术
《高性价比人生指南》完整原版:普通人用最少的资源,过好这一生的底层逻辑~How To Live Better
📖《高性价比人生指南》是一份基于实证、拒绝焦虑的生存手册,倡导以“人生时薪”为视角,重新计算时间、金钱与精力的成本与收益。它不承诺逆袭,只教人算清账:省下的钱若耗掉时间便亏;买体验比买物品更值;睡眠是最高杠杆的健康投资;关系贵在情绪价值而非表面热络;学习重在改变行为而非自我安慰。核心理念:用低成本、高回报的微小行动,换取长期的选择权——不是成为谁,而是掌控自己人生的主动权。
|
20天前
|
人工智能 API 开发工具
DeepSeek Harness 神插件:白嫖 13 家大厂模型
`dsh-our-free-model` 是 DeepSeek Harness 神级插件:零配置、零API Key、零账号,聚合13家大厂免费模型(含DeepSeek V4.1 Flash、Kimi K3等),支持本地网关、用量看板与自动降级,真正实现“白嫖即用”。
3478 53
|
12天前
|
人工智能 JSON Linux
【保姆级】ComfyUI部署教程(下载+安装+配置+工作流,2026最新)
ComfyUI 是一款开源节点式AI生成工具,支持图像、视频、音频及3D内容创作。通过拖拽连线组合模型加载、提示词、采样等节点,构建可复用、易修改的工作流,兼容SD1.5、SDXL、Flux、Qwen Image等主流模型。