惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Cisco Talos Blog
Cisco Talos Blog
The Hacker News
The Hacker News
L
LINUX DO - 最新话题
P
Privacy & Cybersecurity Law Blog
C
Cyber Attacks, Cyber Crime and Cyber Security
S
Secure Thoughts
S
Schneier on Security
MyScale Blog
MyScale Blog
月光博客
月光博客
U
Unit 42
www.infosecurity-magazine.com
www.infosecurity-magazine.com
AI
AI
N
News and Events Feed by Topic
Exploit-DB.com RSS Feed
Exploit-DB.com RSS Feed
爱范儿
爱范儿
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
S
Securelist
B
Blog RSS Feed
Spread Privacy
Spread Privacy
H
Help Net Security
Know Your Adversary
Know Your Adversary
I
Intezer
Hacker News - Newest:
Hacker News - Newest: "LLM"
V
V2EX
MongoDB | Blog
MongoDB | Blog
GbyAI
GbyAI
博客园 - 叶小钗
D
DataBreaches.Net
T
Troy Hunt's Blog
Project Zero
Project Zero
Last Week in AI
Last Week in AI
Y
Y Combinator Blog
P
Privacy International News Feed
The Last Watchdog
The Last Watchdog
K
Kaspersky official blog
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
Latest news
Latest news
S
Security @ Cisco Blogs
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
V2EX - 技术
V2EX - 技术
Hacker News: Ask HN
Hacker News: Ask HN
The GitHub Blog
The GitHub Blog
C
Cisco Blogs
C
CERT Recently Published Vulnerability Notes
Attack and Defense Labs
Attack and Defense Labs
T
Threatpost
O
OpenAI News
Recorded Future
Recorded Future
Help Net Security
Help Net Security
罗磊的独立博客

Oskyla 烹茶室

修复 Joplin on KDE 菜单栏显示问题 Copy Fail:Linux 内核 2017 年至今的高危漏洞(附临时缓解方案) | CVE-2026-31431 Hermes Agent — 在 K3s / K8s 中运行指南 在 K3s 节点上安装并使用 nerdctl Mouser:轻量开源的罗技鼠标驱动替代方案 Claude Opus 4.7:优缺点与评测信息汇总 openFuyao NPU-Operator故障排查 openFuyao 2603 共测测试报告 openFuyao InferNex AI推理集成部署 310P(300I Pro) 环境问题记录及解决 ceph mon Operation not permitted 问题解决 Ascend 310P + openFuyao + NPU-Operator 故障排查 KDE Plasma6 禁用全局菜单,恢复正常应用菜单 终极指南:在 Linux 裸机服务器上快速部署 Moltbot (原 Clawbot) 并集成飞书 Windows 配置 Claude Code 解决 settings.json 不生效 Windows 配置 Claude Code 全流程 2025-12-31 | 年终总结 AI 生图精品提示词|第二期:城市星球 AI 生图精品提示词|第一期 Kubernetes kubectl --raw 使用指南 彻底解决阿里云和 tailscale 冲突 2025-10-21 | 沉淀思维 macOS 单独为鼠标或触控板开启自然滚动 2025-10-16 | 负载高低 2025-10-15 | 睡眠周期 2025-10-14 | 转换情绪与独立观点 go 拉取 gitcode.com 私有 mod Git 将某个文件恢复到其他分支的状态 SSH 通过跳板机连接 lxc 使用 chronyc 构建 ntp 服务 2025-10-13 | 独立思考于未来能源 2025-10-12|AI Review 及高质量工作流 2025-10-11 | 人生阶段 2025-10-10 | AI Logo | 远程操控 AI 2025-10-09 | 去班味|银杏|域名 2025-10-08 2025-10-07 2025-10-06 2025-10-05 优秀的 SubReddit 清单 Synology 群晖重置 Syncthing 密码 让 LLM 看到真实世界的 Playwright MCP 磁盘占用分析利器 ncdu 自建 gitlab 徽标问题导致项目 500 问题解决 harbor Chartmuseum helm 图表缓存刷新 grep exclude 排除 Debian 11 + PVE LACP Mac 冲突问题调查与解决方案 Claude Code 实用技巧 CentOS 7 重置 root 密码 telnet 如何退出 kubernetes 的挂载传播(mount propagation)机制 vim 将命令输出到当前位置 harbor 替换 ssl 证书 AI提效之使用 cherry-studio + k8sgpt 实现 AI 巡检 k8s Claude Code Subagents 快速开始 《我看见的世界:李飞飞自传》 Lyra - AI Prompt Optimization Specialist Linux 自签名 CA 证书安装方法 超级玛丽、魂斗罗等经典小游戏聚合站 | PlayUnb 个人业余开发项目清单 快速选出收益最高的理财产品 | finance-calculator 苹果液态玻璃风格图像生成和模拟器 | LiquedGlass.icu Linux 进程绑定NUMA节点或CPU核心 判断GPT是否降智的几个问题 Harmony next hap 安装 名侦探柯南贝尔摩德出场集数 k3s k8s 快速部署轻量节点监控方案 beszel k3s-k8s 实现 DevOps 方案横向对比 k8s 配置访问私有镜像仓库 GoAccess 分析多网站日志方法 Octant - 以开发人员为中心的开源 Kubernetes Web 界面 Tailscale 自建 DERP 并配置 SSL 完整教程 OpenManus 使用记录 Plausible 缺失 location 信息的研究 解决 Nginx Ingress returns 413 Entity Too Large 绘图模型效果对比之城市气象 【转】k8s 认知路线 OpenFOAM 两大分支的详细比较 第一个 CUDA 程序之矩阵运算计算效能对比 Archlinux KDE Apache JMeter 配置高分屏缩放 解决 gitlab-runner 移除残留文件 permission denied nginx-ingress 配置路由 302 k8s 触发 pod 重新拉取镜像平滑升级的方法 Clickhouse 迁移后 permission denied 问题解决 Linux CPU 运行模式及功耗分析 Linux vim vi 翻页跳转命令快捷键 git 拉取所有 branch 和 tag 到本地并推送到远程 Rails 性能分析工具 rack-mini-profiler 和 bullet 全球国家、城市、地区开源数据库 Rails Active Record 常用命令 Rails Rake 简介与编写 如何调试 Vim 脚本 名侦探柯南松田阵平出场集数(最新1069话) 名侦探柯南妃英理出场集数(最新1069话) 《名侦探柯南》官方人气投票结果 名侦探柯南TV安室透出场集数(最新1110话) 名侦探柯南TV赤井秀一出场集数(更新至1194话) [转]名侦探柯南TV主线集数整理(截止1165集) 架构风格总结 [转译] 如何成为一个好的开发者? 【影评】名侦探柯南·零的执行人
Linux 生成随机字符串的方法
Tianlun Song · 2024-06-30 · via Oskyla 烹茶室

本文 首发于 🌱 煎茶转载 请注明 来源

随机字符串常用于创建随机账号或密码,Linux 可用以下方法生成随机字符串。

1.生成由大写字母组成的随机字符串:

$ head /dev/urandom | tr -dc A-Z | head -c 20

NRXFYZRTUEDXTVPJAYJW

2.生成由小写字母组成的随机字符串:

$ head /dev/urandom | tr -dc a-z | head -c 20

rizsfwebsmfowsogsqfi

3.生成由纯数字组成的随机字符串:

$ head /dev/urandom | tr -dc 0-9 | head -c 20

06983118429648544871

4.生成由大写字母、小写字母、数字组成的随机字符串:

$ head /dev/urandom | tr -dc A-Za-z0-9 | head -c 30

kFac0BEcbWS9eTZWZwn52ps53kGp6q

5.写成 Shell 脚本:

#!/bin/bash


pass=$(head /dev/urandom | tr -dc A-Za-z0-9 | head -c 30)

echo $pass

其他方法

通过系统环境变量($RANDOM)

[root@node1 scripts]# echo $RANDOM
4245
[root@node1 scripts]# echo $RANDOM
22740


# RANDOM的随机数范围为0~32767,因此,加密性不是很好,可以通过在输出的随机数后增加加密字符串(就是和密码生成有关的一个字符串)的方式解决,最后再一起执行md5sum操作并截取结果的后n位,这样一来,就无法根据随机数范围0~32767来猜出具体结果了。

[root@node1 scripts]# echo king$RANDOM
king22063
[root@node1 scripts]# echo king$RANDOM|md5sum
3fbe359b707854cabcbc96af50b717e4  -
[root@node1 scripts]# echo king$RANDOM|md5sum|cut -c 8-15
eda56360

通过openssl产生随机数

[root@node1 scripts]# openssl rand -base64 8
L6rJK6fykP4=
[root@node1 scripts]# openssl rand -base64 80
7lWMxZTmmPwLCwkO24BxHX82CX2eOv7DGoS+Wsolo+L86dgfSQts7sokjDvG5uk2
6rQwrqqu1MIpFpyKtCNvEwSnh43/OWZAzqREA4NOkLA=

# 令数字与大小写字符相结合,并且带上特殊字符,可以达到很长的位数,这样的随机数很安全。

通过时间(date)获得随机数

[root@node1 scripts]# date +%s%N
1602673097974691108

通过/dev/urandom配合chksum生成随机数

[root@node1 scripts]# head /dev/urandom|cksum
2360985463 1289

# /dev/random设备存储着系统当前运行环境的实时数据。它可以看作系统在某个时候的唯一值,因此可以用作随机数元数据。我们可以通过文件读取的方式,读到里面的数据。/dev/urandom这个设备的数据与random里的一样。只是,它是非阻塞的随机数发生器,读取操作不会产生阻塞。

通过UUID生成随机数

[root@node1 scripts]# cat /proc/sys/kernel/random/uuid 
01018ade-6388-45d9-8fd0-a14e2032c5c3

# UUID码全称是通用唯一识别码(Universally Unique Identifier,UUID),它是一个软件建构的标准,亦为自由软件基金会(Open Software Foundation,OSF)的组织在分布式计算环境(Distributed Computing Environment,DCE)领域的一部分。
# UUID的目的是让分布式系统中的所有元素都能有唯一的辨识信息,而不需要通过中央控制端来做辨识信息的指定。如此一来,每个人都可以创建不与其他人发生冲突的UUID。在这样的情况下,就不需要考虑数据库创建时的名称重复问题了。它会让网络中任何一台计算机所生成的UUID码都是互联网整个服务器网络中唯一的编码。它的原信息会加入硬件、时间、机器当前运行信息等。

使用expect附带的mkpasswd生成随机数

# mkpasswd命令依赖于数据包expect,因此必须通过“yum install expect–y”命令先安装该数据包:
[root@node1 scripts]# mkpasswd -l 9 -d 2 -c 3 -C 3 -s 1
3TYKmb*9k

# 相关参数说明如下:
-l #   (length of password, default = 9)       #<==指定密码长度。
-d #   (min # of digits, default = 2)          #<==指定密码中数字的数量。
-c #   (min # of lowercase chars, default = 2) #<==指定密码中小写字母的数量。
-C #   (min # of uppercase chars, default = 2) #<==指定密码中大写字母的数量。
-s #   (min # of special chars, default = 1)   #<==指定密码中特殊字符的数量。

References

#GNU_Linux