快用工具
⌘/Ctrl K

Basic Auth 是什么?如何生成 Authorization 头(含 curl 示例)

2026-01-03

返回列表

很多接口文档会写一句:

使用 HTTP Basic Authentication,在请求头添加 Authorization: Basic ...

但第一次用时经常卡在“Basic 后面到底是什么”。这篇小技巧用最短路径讲清楚原理,并给出可直接复制的例子。

1. Basic Auth 的原理(一句话)

Basic Auth 本质是把 用户名:密码 这段字符串做 Base64 编码,然后放到请求头里:

Authorization: Basic base64(username:password)

举例:

用户名: alice
密码:   s3cret
拼接:   alice:s3cret

alice:s3cret 进行 Base64 编码得到一串字符,然后拼在 Basic 后面。

2. 用本站工具快速生成

打开工具页:/tools/basic-auth-generator

你只需要输入:

  • Username(用户名)
  • Password(密码)

工具会输出可直接复制的 Authorization 头。

提醒:Basic Auth 不是加密,只是编码;请不要在不可信环境或明文 HTTP 中传输真实密码。

3. curl 示例(最常用)

方式 A:让 curl 帮你生成(推荐)

curl -u "alice:s3cret" https://api.example.com/v1/me

curl 会自动生成并附带 Authorization: Basic ...

方式 B:手动带 header(便于复制到 Postman/脚本)

假设你用工具生成的值是:

Authorization: Basic YWxpY2U6czNjcmV0

那么请求可以写成:

curl -H "Authorization: Basic YWxpY2U6czNjcmV0" \
  https://api.example.com/v1/me

4. 常见坑位

4.1 忘了冒号 :

一定是 username:password(中间有英文冒号)。少了冒号,服务端通常会直接 401。

4.2 用户名/密码里含有特殊字符

  • 如果密码里含有空格、@: 等字符,拼接仍然是原样拼接
  • 在命令行里要注意引号:建议用双引号包起来,避免 shell 解析。

4.3 把 Basic Auth 当成“安全的登录”

Basic Auth 最大的问题是:

  • header 里携带的其实就是“可被还原”的凭据
  • 一旦被抓包/泄露,风险很大

生产环境建议:

  • 必须使用 HTTPS
  • 尽量使用短期 token(如 Bearer Token)替代长期用户名密码

5. 如何验证你生成的值是否正确

你可以把 Basic ... 后面的字符串拿去做 Base64 解码,应该能还原出 username:password

如果你在工具站里也有 Base64 字符串工具,可以用它快速验证:

  • YWxpY2U6czNjcmV0 解码
  • 结果应为 alice:s3cret