Oh MyUtils

密码生成器 - 强随机密码和密码短语 在线

生成强大安全的随机密码和易记密码短语。自定义长度、字符和复杂度 — 100%客户端处理,不存储。

4128

密码强度

103.4
字符池: 88 字符预计破解时间: 2.1e+3 billion years

批量生成

数量

常见问题

什么是密码生成器?

密码生成器是一种使用加密安全随机数生成来创建随机、不可预测密码的工具。与人类创建的密码(倾向于遵循模式且可预测)不同,生成的密码使用可用字符集的最大随机性,使其极其抵抗暴力攻击、字典攻击和社会工程学。

如何使用此密码生成器?

选择模式:密码(随机字符)或密码短语(随机单词)。调整长度滑块设置所需密码长度(建议16个字符以上)。切换字符类型:大写、小写、数字、符号。更改设置时密码会自动生成。检查强度计确认满足安全需求。点击复制按钮复制到剪贴板。

我的密码数据安全吗?会发送到服务器吗?

您的密码100%安全,永远不会离开浏览器。此工具使用Web Crypto API(crypto.getRandomValues())完全在您的设备上生成密码。密码数据从不传输到任何服务器、存储在任何数据库中或记录在任何地方。

什么是密码熵?为什么重要?

熵以比特为单位衡量密码的随机性和不可预测性。熵越高,通过暴力攻击破解密码就越困难。计算公式为 E = L × log₂(C),其中L是密码长度,C是字符池大小。安全专家建议标准账户至少60位,高安全性应用120位以上。

密码和密码短语有什么区别?

密码是随机字符串(如 K9$mPq2#vL7n),而密码短语是随机单词序列(如 correct-horse-battery-staple)。密码短语通常在提供高熵的同时更容易记忆。

为什么使用crypto.getRandomValues()而不是Math.random()?

Math.random()是使用确定性算法的伪随机数生成器(PRNG)。crypto.getRandomValues()是由操作系统熵源支持的加密安全PRNG(CSPRNG),适用于密码生成等安全敏感应用。此工具专门使用crypto.getRandomValues()以确保最大安全性。

代码示例

// Secure password generator using Web Crypto API
function generatePassword(length = 16, options = {}) {
  const { uppercase = true, lowercase = true, numbers = true, symbols = true } = options;

  let charset = '';
  if (uppercase) charset += 'ABCDEFGHIJKLMNOPQRSTUVWXYZ';
  if (lowercase) charset += 'abcdefghijklmnopqrstuvwxyz';
  if (numbers) charset += '0123456789';
  if (symbols) charset += '!@#$%^&*()_+-=[]{}|;:,.<>?';

  const array = new Uint32Array(length);
  crypto.getRandomValues(array);

  let password = '';
  for (let i = 0; i < length; i++) {
    password += charset[array[i] % charset.length];
  }
  return password;
}

const pwd = generatePassword(20);
console.log(pwd);
console.log('Entropy:', (20 * Math.log2(90)).toFixed(1), 'bits');

相关工具