crypto.getRandomValues 生成。ALTER USER / ALTER ROLE 让数据库自己按当前认证插件存储;输出里带明文的那条 SQL 请注意别记进日志。两步:① 生成一个强密码(或输入已有密码);② 算出对应数据库的存储凭据 / hash 和一条改密码的 SQL。支持 MySQL / MariaDB / PostgreSQL。
0O1lI;每类至少保证出现一个。Iron-wave-moss-gate-42。crypto.getRandomValues(加密安全),不是 Math.random。| 数据库 | 输出 |
|---|---|
| MySQL | mysql_native_password hash(*大写HEX(SHA1(SHA1(密码)))),加两条 ALTER USER SQL(一条让服务端存、一条直接写 hash)。MySQL 8+ 默认 caching_sha2_password,写 native hash 要显式指定插件。 |
| MariaDB | 同上;MariaDB 默认就是 mysql_native_password。 |
| PostgreSQL | SCRAM-SHA-256 verifier(SCRAM-SHA-256$迭代:盐$storedKey:serverKey,可直接写 pg_authid.rolpassword),加两条 ALTER ROLE SQL。迭代次数、salt 字节数可调(默认 4096 / 16)。 |
caching_sha2_password / MySQL 8 的 SHA-256 认证 hash 不在这里生成——那个要服务端 nonce,只能让服务器自己算。
IDENTIFIED BY '...' / WITH PASSWORD '...')是给你直接执行用的,注意别记进 shell 历史或查询日志。相关:随机密码生成 · Htpasswd 生成 · bcrypt 加密校验 · PBKDF2 密钥派生 · HMAC 计算。
输出里带明文密码的 SQL 别记进 shell 历史或数据库日志。