你可能会说
这个 key 能不能直接写在代码里
证明你有权调用某个接口、别乱借人的密码串
大白话解释
接口密钥就像你家的门禁卡。大楼的公共区域谁都能进,但你要进自己公司那层,得刷卡证明「我是这家的人」。程序世界也一样,接口摆在那儿,但很多接口要你先出示密钥,才肯给你数据。
它通常是一长串乱码,长得不像密码,作用却和密码一样:认身份、记账、控制权限。服务提供方靠它知道这次调用是谁发起的,好给你算用量、限次数。
关键点是这东西属于秘密。它一旦泄露,别人就能顶着你的名义用接口,账单记在你头上。正确做法是存在环境变量或后台配置里,不写进代码,更不提交到公开仓库。
什么时候会遇到
- 申请某个 AI 或云服务时,控制台给你的那串 sk- 开头的字符就是接口密钥。
- 把密钥直接写死在代码里提交到公开仓库,被扫号机器人抓到后被盗刷。
- 本地能跑、部署到服务器就报 401,往往是服务器上的密钥没配或配错了。
- 跟同事共用一个密钥,用量爆了却查不出到底是谁用的。
- 让 AI 助手写调用代码时,要告诉它密钥从哪里读,而不是硬编码在文件里。
可以直接对 Agent 说
「我要调用这个 AI 接口,密钥放在项目根目录的 .env 文件里,变量名叫 API_KEY,请写读取它的代码,不要硬编码」
「检查一下这个仓库里有没有把密钥或令牌直接写进代码的地方,列出来并改成从环境变量读取」
「我部署后调用接口一直返回 401,帮我排查密钥是从哪里读的,以及服务器上有没有正确配置」
正文里带下划线的词,是本站其它词条的入口;这一篇自动链了 2 个相关术语。
最容易想岔的地方
常见的错误理解: 密钥就是密码,团队里谁要用就复制一份发过去
更准确的理解: 密钥代表的是调用方的身份和账单。发出去就收不回来,谁拿着它做的事都算在你头上
常见的错误理解: 前端代码里藏得深一点就安全了,压缩混淆一下就没人找得到
更准确的理解: 前端代码全都会发到用户浏览器里,翻一翻就能看到。要调第三方服务必须让后端代理,密钥只能待在服务器上
测一下:真遇到了你会怎么处理
单选 · 选完立刻看解释
你把代码推上了公开仓库,第二天收到平台邮件:检测到你的密钥已泄露。
现在最该先做的一步是什么?
-
密钥一旦公开就收不回来了。唯一有效的止损是让它立刻失效,然后换新的一把。
-
Git 历史里的旧提交还在,自动化爬虫也可能已经抓走副本。删库解决不了已经泄露这件事。
-
这是必须做的后续动作,但不是第一步。旧密钥在改之前仍然有效,而且它还留在提交历史里。
题目只考「这个场景下的第一反应」,不考名词背诵 —— 接口密钥的定义在上面已经讲过了。