You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Docker .config.json中密码Base64存储异常问题咨询

Docker Base64 密码存储差异的原因

首先,咱们先把核心差异点拆解清楚:

  • Docker 的 auth 字段是 username:password 组合字符串的 Base64 编码,编码的是原始字符串,不包含任何额外的换行符。
  • 你使用 base64 <<< @ 命令时,bash 的 here-string(<<<)语法会自动在输入的字符串末尾追加一个换行符(\n),所以你实际编码的内容是 @\n(@ 字符加上换行),而非纯 @。

我们可以用命令直接验证这两种情况:

  1. 编码纯 @(不带换行):

    echo -n "@" | base64
    

    输出结果就是 QA==,和你在 .docker/config.json 中看到的完全一致。

  2. 编码带换行的 @(即 @\n):

    echo "@" | base64  # 效果等同于 base64 <<< @
    

    输出结果是 QAo=,这和你自己计算的结果完全匹配。

至于 Docker 的处理逻辑:当你通过 docker login 输入密码时,Docker 会读取你输入的原始密码内容(不会额外添加换行符),然后和用户名拼接成 username:password 后再进行 Base64 编码。你这里的 auth 是 QA==,说明最终拼接的字符串就是纯 @——大概率是你登录时跳过了用户名输入(直接回车),部分 Docker 版本在处理空用户名时会简化为仅编码密码内容,不过这不是重点,核心差异已经明确:你的命令因为自动添加了换行符导致编码结果不同,而 Docker 编码的是无换行的原始密码字符串。

内容的提问来源于stack exchange,提问作者Node.JS

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.14 08:35:22