密码生成器/ 安全随机
一键生成高强度随机密码,支持自定义长度与字符类型。使用 Web Crypto API,密码不上传服务器。
生成设置
密码长度
43264128
生成数量
一次生成多个密码
5
排除 0 O o I l 1 等
强度极强
熵值: 104 bits91 chars
密码在浏览器本地生成,不会上传到任何服务器
生成结果
~,uyz,{`?AM/WF;7?<yqaNSMT0#,p`AeY+iGl8t2uE,a85Y3(phKa&ckGFI+jJD|EO@Zzb.kq-gVV=k$这个工具有帮到你吗?
什么样的密码算强密码
强密码通常满足以下条件:长度至少 12 位(推荐 16 位以上)、包含大小写字母、数字和特殊符号、不使用字典词汇或个人信息、每个网站使用不同密码。密码强度与长度高度相关 — 一个 16 位的随机密码比 8 位复杂密码更难暴力破解。NIST 最新指南建议密码长度优先于复杂度。
为什么不应该自己想密码
人类在创建密码时倾向于使用有规律的模式:姓名 + 生日 + 符号、键盘序列(qwerty、123456)、常见单词变形等。这些模式早已被攻击者收录在密码字典中,可在秒级被破解。使用密码生成器产生的随机密码没有任何规律,暴力破解需要数百年。配合密码管理器(如 1Password、Bitwarden)使用随机密码是最佳实践。
这个密码生成器安全吗
本工具使用浏览器内置的 Web Crypto API(crypto.getRandomValues)生成密码,这是密码学安全的伪随机数生成器(CSPRNG)。所有生成过程完全在浏览器本地完成,密码不会上传到任何服务器,没有网络传输,因此不存在泄露风险。你可以在离线状态下放心使用。
代码示例
JavaScript
function generatePassword(len, charset) {
const arr = new Uint32Array(len);
crypto.getRandomValues(arr);
return Array.from(arr, (v) =>
charset[v % charset.length]
).join("");
}
const chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789!@#$%^&*";
const pw = generatePassword(16, chars);
// e.g. "xK9#mP2&vL5$nQ7@"Python
import secrets
import string
def generate_password(length=16):
chars = (
string.ascii_letters
+ string.digits
+ string.punctuation
)
return "".join(
secrets.choice(chars)
for _ in range(length)
)
pw = generate_password(16)
# Uses OS-level CSPRNGTypeScript
function securePassword(
length: number,
options = {
upper: true, lower: true,
digits: true, symbols: true,
}
): string {
let pool = "";
if (options.upper) pool += "A-Z";
if (options.lower) pool += "a-z";
if (options.digits) pool += "0-9";
if (options.symbols) pool += "!@#$%^&*";
const buf = new Uint32Array(length);
crypto.getRandomValues(buf);
return [...buf].map(v =>
pool[v % pool.length]).join("");
}Go
import (
"crypto/rand"
"math/big"
)
func GeneratePassword(
length int, charset string,
) (string, error) {
result := make([]byte, length)
max := big.NewInt(int64(len(charset)))
for i := range result {
n, err := rand.Int(rand.Reader, max)
if err != nil {
return "", err
}
result[i] = charset[n.Int64()]
}
return string(result), nil
}常见问题
生成的密码安全吗?
非常安全。本工具使用浏览器原生的 Web Crypto API(crypto.getRandomValues)生成密码,这是密码学级别的安全随机数生成器,与 1Password、Bitwarden 等专业密码管理器使用的是同一套底层技术。
密码会上传到服务器吗?
不会。所有密码均在你的浏览器本地生成和显示,整个过程不涉及任何网络请求。页面源码完全开放,你可以随时审查确认。即使断网也能正常使用。
密码长度设多少合适?
建议至少 12 位,推荐 16 位以上。12 位混合密码约有 72 bits 熵值,破解需要数百年;16 位则超过 95 bits,可以抵御目前已知的所有暴力破解手段。重要账户建议 20 位以上。
什么是密码熵?
密码熵(Entropy)是衡量密码随机性和安全强度的指标,单位是 bit。计算公式为 log2(字符池大小) x 密码长度。熵值越高,密码越难被暴力破解。一般认为 60 bits 以上为中等强度,80 bits 以上为强密码,128 bits 以上几乎不可能被破解。
为什么要排除易混淆字符?
某些字符在视觉上非常相似,比如数字 0 和字母 O、数字 1 和小写 l、大写 I。当你需要手动抄写或口述密码时,开启此选项可以避免混淆。如果密码只用于复制粘贴,则无需开启。
如何安全存储生成的密码?
强烈建议使用专业密码管理器(如 1Password、Bitwarden、KeePass)保存密码,而非浏览器自带的密码保存功能。切勿将密码保存在明文文件、便签纸或聊天记录中。每个账户应使用不同的密码。