⌘/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