冒号怎样处理
RFC 7617 以第一个冒号分隔用户名和密码,所以用户名不能含冒号,密码可以。解析时后续冒号全部保留在密码中。
开发 / HTTP 认证
生成 Authorization Header、curl 和 fetch 请求,也能把已有 Basic Token 拆回用户名与密码。凭据只在当前浏览器内处理,不会保存到本地存储。
c2VhbDpzdHVkaW8=
Authorization: Basic c2VhbDpzdHVkaW8=
curl --user 'seal:studio' 'https://example.com/api'
curl --header 'Authorization: Basic c2VhbDpzdHVkaW8=' 'https://example.com/api'
fetch("https://example.com/api", {
headers: {
Authorization: "Basic c2VhbDpzdHVkaW8=",
},
});RFC 7617 以第一个冒号分隔用户名和密码,所以用户名不能含冒号,密码可以。解析时后续冒号全部保留在密码中。
服务端可在 WWW-Authenticate 挑战中声明 charset="UTF-8"。旧系统可能沿用兼容编码,遇到中文乱码应核对服务端文档。
浏览器 fetch 示例只适合调试受控接口。公开网页源码、日志、错误追踪和 Git 仓库都不应包含仍在使用的账号密码。
RELATED TOOLS
USE & REVIEW
不是。Base64 只是可逆编码,拿到 Authorization Header 的人可以直接还原用户名和密码。Basic Auth 必须放在 HTTPS 连接里使用,还要避免把真实 Header 留在截图、日志、监控报错、前端源码或 Git 仓库中。
RFC 7617 把凭据拼成 user-id:password,并用第一个冒号作为分隔符,所以 user-id 中出现冒号后无法无歧义解析。密码里的后续冒号会被当作密码内容保留;本工具的解析器也只在第一个冒号处分开。
RFC 7617 允许服务器在 WWW-Authenticate 挑战中通过 charset="UTF-8" 表明 UTF-8,且建议新系统支持 UTF-8。部分旧服务沿用单字节兼容方式,因此工具保留 ISO-8859-1 选项。含中文或其他非 ASCII 字符时,应以目标服务文档和真实请求结果为准。
可以粘贴纯 Base64 Token、以 Basic 开头的值,或完整的 Authorization: Basic ... Header。自动模式会先按严格 UTF-8 解码,字节无效时再按 Latin-1 兼容方式还原,并给出提示;它不会验证这组凭据能否登录远端服务。
Header 正确只解决认证格式。目标还可能受到 CORS、代理、证书、网络、请求方法、Content-Type、账号权限或服务端认证策略影响。浏览器 Fetch 尤其受同源与 CORS 限制;请先用测试账号在目标环境验证,不要把失败简单归因于 Base64。
生成、编码和解析都在当前浏览器内完成,页面没有把凭据写入本地存储或提交到服务器。浏览器扩展、系统剪贴板、下载文件和屏幕共享仍可能接触内容,因此只使用测试凭据最稳妥,完成后应清空输入并删除不再需要的导出文件。