在这里插入图片描述

一、引子:那个被"龙虾"吃垮的深圳程序员

去年年底,深圳某互联网公司的后端工程师小李,收到了一封来自OpenAI的账单邮件。

他盯着屏幕看了三秒,以为自己眼花了——$3,847.62

折合人民币,将近两万八。

小李月薪两万出头,这一张账单,直接把他一个月的工资吃得连渣都不剩,还倒欠八千。

更离谱的是,他根本没用过这么多。他只是在GitHub上传了一个个人项目,顺手把.env配置文件也推上去了。那个文件里,静静躺着他的OpenAI API密钥。

从代码推上去到账单爆炸,不到六个小时

有人专门写了爬虫,24小时扫描GitHub上新提交的代码,专门找这种"裸奔"的密钥。找到了,立刻拿去跑模型,生成内容、刷接口、薅羊毛。至于账单?那是你的事。

这个故事在程序员圈子里广为流传,被戏称为"养龙虾事件"——你辛辛苦苦打工,结果给别人养了一池子龙虾。

但问题是:大多数人根本不知道API密钥是什么,Token是什么,更不知道它们是怎么被偷走的。

今天,咱们就把这几件事说清楚。


二、什么是API密钥?——你的"酒店房卡"

先从API密钥说起。

你去酒店住宿,前台会给你一张房卡。这张卡有几个特点:

  • 它代表你的身份:刷卡进门,系统知道是你在用
  • 它有权限范围:你只能开你自己的房间,不能开别人的
  • 它可以被复制:如果有人拿走了你的房卡,他就能以你的名义进出
  • 它产生费用:你住的每一晚,都记在你的账上

API密钥,就是你在使用某个AI服务(比如OpenAI、Claude、文心一言)时,平台发给你的"数字房卡"。

每次你的程序调用AI接口,都要带上这串密钥。服务器看到密钥,就知道:哦,是这个账号在用,记账。

一串典型的OpenAI密钥长这样:

sk-proj-aBcDeFgHiJkLmNoPqRsTuVwXyZ1234567890abcdefghij

看起来像一串乱码,但它就是你的"数字身份证"。

关键点来了:

这串密钥本身,不绑定你的手机号,不需要人脸识别,不需要短信验证码。谁拿到它,谁就是"你"。

就像酒店房卡,你丢了,捡到的人直接刷进去,前台不会问任何问题。

所以,API密钥的安全铁律只有一条:绝对不能让别人看到。

不能写在代码里,不能传到GitHub,不能发到群里,不能截图分享,不能存在没有加密的地方。

很多人觉得这是程序员才需要懂的东西。其实不然——现在越来越多的普通用户也在直接使用各种AI平台的API,自己搭建工具、接入服务。这张"房卡",你迟早会拿到一张。


三、什么是Token(词元)?——按"字"计费的客房服务

好,现在你拿着房卡进了酒店。

酒店里有个客房服务:你可以打电话给前台,让他们帮你做任何事——查资料、写文案、翻译文件、写代码。

但这个服务不是免费的。它按"字"收费。

你说的每一个字,前台回复的每一个字,都要计费。

这个"字",在AI世界里,就叫做Token

你可能注意到了,这个词一直是英文。其实在很长一段时间里,整个中文互联网都在为它头疼——有人叫它"令牌",有人叫它"标记",有人叫它"符号",还有很多人干脆不翻译,直接写Token。翻译员头大,教材编辑头大,连黄仁勋在英伟达GTC大会上说了70多次Token,翻译员都没法统一。

直到2026年3月,这件事终于有了定论。

3月23日,在中国发展高层论坛上,国家数据局局长刘烈宏正式官宣:Token的中文标准译名确定为——「词元」。随后,全国科学技术名词审定委员会发布公告,面向全社会发布试用。人民日报、央视新闻、中国计算机学会等权威机构同步统一采用。

「词元」这个词,用得很讲究。"词"代表它的语言属性——它是对文本进行语义切分后的最小符号单元;"元"代表它的基本属性——它是不可再分的原子级计量单位。

国家数据局局长刘烈宏还给了「词元」一个更精准的产业定位:它不仅是智能时代的价值锚点,也是连接技术供给与商业需求的"结算单位"。

简单说:词元 = AI处理信息的最小计量单位。 你发给AI的每一个问题、AI给你的每一个回答,都要先被拆成词元,才能被模型理解和处理。

词元不完全等于一个汉字或一个英文单词,而是介于字符和词语之间的一个"语言碎片"。

举个例子:

  • 英文单词 "hello" = 1个词元
  • 英文单词 "unbelievable" = 4个词元(un-be-liev-able)
  • 中文 "你好" ≈ 2个词元
  • 中文 "人工智能" ≈ 4-6个词元(视模型而定)
  • 中文 "我爱中国!" ≈ 4个词元(我 / 爱 / 中国 / !)

一般来说,1000个词元大约等于750个英文单词,或者500个汉字左右。

AI计费,就是按词元数量来的。你发给AI的内容叫"输入词元",AI回复你的内容叫"输出词元",两者都要收钱,而且输出通常比输入贵。

以GPT-4o为例(2024年价格):

  • 输入:每百万Token约$5
  • 输出:每百万Token约$15

听起来很便宜?

一篇2000字的文章,大约消耗3000-4000个词元。单次调用成本不到一分钱。

但如果有人拿着你的密钥,用脚本批量调用,每秒发几十个请求,跑上几个小时……

几千块钱的账单,就是这么来的。
在这里插入图片描述

回到酒店的比喻:你的房卡被人拿走了,他打了一晚上客房服务电话,点了几百次服务,账单全记在你名下。你第二天退房,傻眼了。

Token本身不是坏东西,它只是计量单位。问题在于:谁在用你的词元,用来干什么。


四、Token是怎么被偷的?——三种"偷龙虾"的方式

现在我们知道了:API密钥是门禁卡,Token是计费单位。那么,坏人是怎么把你的"龙虾"偷走的?

主要有三种方式。

在这里插入图片描述

方式一:代码裸奔——最常见,也最蠢

这是小李踩的坑。

很多开发者在写代码时,为了方便,直接把API密钥写在代码文件里:

api_key = "sk-proj-aBcDeFgHiJkLmNoPqRsTuVwXyZ..."

然后把整个项目推到GitHub。

GitHub是公开的。全世界都能看到你的代码。

有人专门写了自动化工具,叫做"密钥扫描器",24小时不间断地爬取GitHub上的新提交,用正则表达式匹配各种密钥格式。一旦发现,立刻提取,立刻使用。

从你推代码到密钥被盗用,最快只需要几分钟

不只是GitHub,还有Gitee、GitLab、各种代码分享平台,甚至Stack Overflow上的提问截图,都是"猎场"。

方式二:钓鱼网站——最狡猾

你在某个论坛看到一个帖子:

“免费体验GPT-4!无需注册,直接用!点击这里→”

你点进去,是一个做得很像ChatGPT的网站。你输入了你的OpenAI账号密码,或者直接粘贴了你的API密钥来"验证身份"。

恭喜,你的密钥已经到了别人手里。

这类钓鱼网站的套路越来越精:界面一模一样,域名只差一个字母,甚至有HTTPS证书。普通用户根本分辨不出来。

还有一种更隐蔽的:恶意的"AI工具"

某个免费的AI写作工具、AI绘图工具,要求你输入自己的API密钥来使用。你以为是在用自己的额度,其实密钥已经被后台记录,同时被用于其他用途。

方式三:环境变量泄露——最容易被忽视

稍微懂点技术的人知道,密钥应该存在环境变量里,不要硬编码在代码中。

但环境变量也不是绝对安全的。

场景一:日志泄露

程序出错时,有些框架会把所有环境变量打印到日志里。如果日志被上传到日志平台,或者被不小心公开,密钥就暴露了。

场景二:.env文件上传

.env文件是存储环境变量的标准文件,里面通常有这样的内容:

OPENAI_API_KEY=sk-proj-aBcDeFgHiJkLmNoPqRsTuVwXyZ...

这个文件必须加入.gitignore,绝对不能上传到代码仓库。但很多新手不知道这一点,直接把.env文件推上去了。

场景三:截图/录屏泄露

你在录制教程视频,或者截图分享代码,不小心把终端里的密钥截进去了。发出去之前没检查,发出去之后有人截图保存……

这种情况比你想象的更常见。


五、如何保护自己?——三条实操建议

说了这么多"怎么被偷",现在说说"怎么防"。

不需要你是程序员,三条建议,人人能做到。

建议一:密钥存在"保险箱"里,不要裸放

如果你是开发者:

永远不要把密钥写在代码里。使用环境变量,并且把.env文件加入.gitignore

在项目根目录创建.gitignore文件,加入这一行:

.env

这样Git就不会追踪这个文件,也不会把它推到远程仓库。

如果你是普通用户:

把API密钥存在密码管理器里(比如1Password、Bitwarden、系统自带的钥匙串)。不要存在备忘录、微信收藏、群聊记录里。

密钥就像银行卡密码,你不会把密码发到群里吧?

建议二:开启用量监控,设置消费上限

各大AI平台都提供用量监控和消费限额功能。

以OpenAI为例:

  1. 登录 platform.openai.com
  2. 进入 Settings → Limits
  3. 设置 Monthly budget(月度预算上限)
  4. 开启 Email alerts(邮件提醒)

设置一个合理的上限,比如$10或$20。一旦超过,系统自动停止服务并发邮件通知你。

这样即使密钥泄露,损失也被控制在可接受范围内。

这一步非常重要,很多人忽略了。

建议三:定期轮换密钥,发现异常立刻撤销

密钥不是一次性的,可以随时撤销、重新生成。

养成习惯:

  • 每隔1-3个月,主动轮换一次密钥
  • 发现账单异常,立刻去平台撤销当前密钥
  • 换了新设备或新项目,生成新密钥,不要复用旧的

撤销密钥的操作很简单:登录平台 → API Keys → 找到对应密钥 → 点击删除。

旧密钥立刻失效,即使有人拿着它,也什么都做不了。

就像你的酒店房卡丢了,第一时间去前台挂失,旧卡作废,重新补一张。


六、结语:养得起龙虾,还得懂权限

回到开头那个故事。

小李的问题,表面上是"密钥泄露",本质上是没有理解权限的边界

他以为API密钥只是一串字符,无所谓。他不知道那串字符背后,连着他的钱包、他的账号、他的信用。

这其实是一个更大话题的缩影:在AI时代,每一个普通人都在逐渐成为"数字资产的持有者"

你的账号、你的密钥、你的数据、你的算力额度——这些都是真实的资产,有真实的价值,也面临真实的风险。

Token是计量单位,API密钥是通行证,而权限,才是这一切背后的核心逻辑。

谁有权限用你的资源?用多少?用来干什么?你能不能随时收回这个权限?

搞清楚这些问题,你才算真正"养得起自己的龙虾"——而不是辛辛苦苦打工,给别人的池子里加水。

下一期,我们聊聊权限管理:从API密钥到OAuth授权,从"最小权限原则"到"零信任架构",看看这些听起来很技术的词,其实跟你的日常生活有多近。

Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐