在日常使用中,Codex 本地存储的对话记录默认并未开启加密保护,这难免让人担忧——因为这些内容包含会话详情、提示词以及模型输出,一旦以明文形式保存在磁盘中,就可能面临数据泄露风险。好消息是,Codex 可以借助 macOS 自带的 Keychain(钥匙串)机制,实现自动化的加密保护,整个过程无需手动设置密码或开关,完全由操作系统底层的安全模块代劳。

要让 Codex 的本地对话真正实现安全存储,我们首先需要确认一个核心问题:它的 Keychain 加密功能是否已经正确启用。
确认 Codex 是否已启用 Keychain 加密
操作方法非常直观:进入 Codex 的安装目录,依次打开 Resources/app/src/main/ 子路径,你会找到一个名为 KeychainAccessGate.swift 的文件。如果该文件存在,且其中的 isDisabled 属性默认值为 false,就说明加密通道已经就绪,随时可以投入工作。
这一步不能省略——如果文件缺失,或者 isDisabled 返回 true,那么后续所有本地对话记录(包括会话 ID、用户输入的提示词、模型完整输出)都会以明文形式直接写入磁盘,毫无安全防护可言。
强制触发对话数据写入 Keychain 缓存
确认加密通道就绪后,还需要让它实际执行加密操作。想要触发加密写入,只需在任意对话窗口中输入一条特殊指令:“保存当前上下文到安全存储”。该命令会立即调用 KeychainCacheStore.sa ve() 方法,将当前会话的元数据(包括会话 ID、时间戳、项目路径的哈希值)全部加密后写入系统钥匙串。
【此操作必须执行,历史对话才能受到加密保护】——这是关键:仅仅正常关闭 Codex,系统并不会自动触发加密落盘。未手动保存的对话仍然会以明文形式暂存在 ~/.codex/sessions/ 临时目录中,与未加密状态无异。
验证加密是否生效
如何确认加密已经生效?两种可靠方法如下:
方法一:在终端中执行命令 security find-generic-password -s "codex-session-cache" -w——如果返回的是一串乱码而非清晰的 JSON 文本,则说明 Keychain 已成功写入加密数据。
方法二:打开 macOS 的“钥匙串访问”工具,搜索“codex-session”,双击该条目,然后勾选“显示密码”。此时系统会要求输入登录密码才能查看内容,这正是加密生效的直接证据。
Windows 用户无需担心:请在命令行中执行 cmdkey /list,检查列表中是否存在名称包含“codex_cache”的凭据条目。如果存在,即表示加密保护已成功启用。
