Better Auth Secret 生成器
一键生成加密安全的 BETTER_AUTH_SECRET。密钥通过 Web Crypto API 在浏览器本地生成,强度与 npx @better-auth/cli secret 一致。
使用 Web Crypto API 在浏览器本地生成,不会向任何服务器发送数据。
什么是 BETTER_AUTH_SECRET?
BETTER_AUTH_SECRET 是 Better Auth 用于签名会话令牌、加密敏感 Cookie 和哈希校验数据的服务端密钥。每个 Better Auth 项目都必须配置——生产环境下缺失或使用默认值时库会直接拒绝启动。
密钥必须是只有服务端知道的高熵随机字符串。弱密钥或共用密钥会让攻击者伪造会话 Cookie、冒充任意用户登录。每个项目、每个环境都应生成独立的 32 字节密钥,并确保不进入版本控制。
如何在 Better Auth 中使用
1. 将生成的密钥以 BETTER_AUTH_SECRET 添加到 .env 文件:
# .env
BETTER_AUTH_SECRET=your-generated-secret
BETTER_AUTH_URL=http://localhost:30002. Better Auth 会自动从环境变量读取——也可以通过 secret 选项显式传入:
// lib/auth.ts
import { betterAuth } from "better-auth";
export const auth = betterAuth({
// Better Auth reads BETTER_AUTH_SECRET from the environment
// automatically — set the option only to override it.
secret: process.env.BETTER_AUTH_SECRET,
// ...database, plugins, social providers
});用命令行生成 Better Auth 密钥
更喜欢终端?官方 Better Auth CLI 和 openssl 可以生成同等强度的 32 字节密钥:
# Better Auth CLI
npx @better-auth/cli@latest secret
# or with openssl
openssl rand -base64 32还需要 AUTH_SECRET、NEXTAUTH_SECRET 或 JWT 签名密钥?请使用 通用 Auth Secret 生成器。
常见问题
BETTER_AUTH_SECRET 应该多长?
至少 32 字节(256 位)随机强度,与 npx @better-auth/cli secret 和 openssl rand -base64 32 的输出一致。本工具默认生成 32 字节的 URL 安全 Base64 密钥。
BETTER_AUTH_SECRET 和 AUTH_SECRET 有什么区别?
BETTER_AUTH_SECRET 由 Better Auth 读取,AUTH_SECRET 是 Auth.js(NextAuth v5)读取的变量。Better Auth 优先读取 BETTER_AUTH_SECRET,缺失时回退到 AUTH_SECRET——两者都可用,但专用变量能让混用认证库的项目语义更清晰。
在浏览器里生成密钥安全吗?
安全。本工具使用 Web Crypto API 的 crypto.getRandomValues,随机性质量与 openssl 相同,密钥完全在你的设备上生成,不会被传输到任何地方。
轮换 BETTER_AUTH_SECRET 会发生什么?
所有用旧密钥签名的会话和令牌立即失效,用户需要重新登录。一旦怀疑泄露应立即轮换,并为开发、预览、生产环境使用各自独立的密钥。
这个免费工具由 NEXTY.DEV —— Next.js SaaS 模板 构建和维护,模板内置 Better Auth 认证、Stripe 支付和 AI 能力。