二维码会用完吗?答案是:会......

Hello,大家好,我是 Sunday。

昨天有位同学问我:"二维码会不会有一天被用完了?"

有点意思哈。

其实,这并不是一个新鲜的问题了,之前就有同学聊过这个问题,当时没有太在意。不过又被问到了,所以就写篇文章,来专门说下这个问题。

先说答案:二维码理论上会用完,但是实际上永远也用不完!

二维码的原理

我们平时扫的二维码(比如微信、支付宝、网站登录),其实大多数都是 QR Code(Quick Response Code)。

它的本质,其实非常简单:

一堆黑白格子 === 一段字符串(或者二进制数据)

比如,以我的微信二维码为例:

你以为扫的是一个图形?其实扫进去的,是一段字符串:

u.wechat.com/EJQC2ZdHr5l...

我们可以在二维码生成器中利用上面的链接,重新生成新的二维码,扫描之后可以发现,一样可以进入到我的微信之中

也就是说,二维码其实就是一个 "字符串转图片" 的过程,属于视觉编码的一种。

那二维码有多少种组合?

这是关键问题!

因为二维码本质上是对一段字符串(或二进制数据)进行编码,而字符串的长度并不是无限制的。

既然长度有限,那就意味着:可组合出的字符串总数也是有限的

换句话说,二维码也不是无限的。

那它到底能有多少种组合呢?

要搞清楚这个问题,咱们就得先了解一下二维码的"版本限制"。

QR Code 为例,一共有 40 个版本:

版本 尺寸(像素) 最大字节容量(字节模式)
V1 21 x 21 17 字节左右
V10 57 x 57 174 字节左右
V40 177 x 177 2953 字节左右

我们就拿最大版本 V40 来算:

一个二维码最多能容纳约 2953 个字节,每个字节有 256 种组合,总组合数大概是:256^2953 ≈ 2^23624

这是什么概念?(下面的数值,基于 DeepSeek 计算,不一定完全准确,但是可以作为参考

以我们每年消耗 6000 亿个二维码为例,那么我们可以使用 ≈ 5.7 × 10^7098 年。大家可以简单的理解为 好多亿年,都用不完

所以,我才会在文章开头上说:二维码理论上会用完,但是实际上永远也用不完!

那为什么还有人说"二维码会冲突"?

其实这个"用完"的说法,多半是因为某些人接触到的二维码,是平台生成的 短链接二维码,比如:

sunday.com/abcd

这里的 abcd 就是后端系统生成的短链 ID,一般是 4~6 位的字符串。

如果平台只用了 4 位,那最多也就:62^4 ≈ 1,476,784 个组合(使用大小写字母 + 数字)

这种情况当然很快就"用完"了。但要注意:这是平台自己设定的限制,扩展一下长度就好了,从 4 位变成 6 位、8 位,就能撑住好几年,再不济还能自动清理过期链接,回收可用 ID。。

所以这并不是 "二维码快用完了" ,只是某个平台在 "自找限制" 而已。

相关推荐
里欧跑得慢4 分钟前
AI 驱动的 UI 国际化方案自动适配:从单一语言到多语言布局的智能转换
前端·css·flutter·web
DolitD5 分钟前
云流技术深度剖析:单服务器下如何实现3D应用的多实例并发?
java·服务器·前端·3d·云原生·云计算
芦柑46412 分钟前
画布和3D导演台工具:短剧分镜从素材整理到空间预演的完整链路
服务器·前端·数据库
李蚊子25 分钟前
从代理提醒到真实响铃:懒熊闹钟的鸿蒙开发实践
前端·harmonyos
IT_陈寒32 分钟前
Redis的Lua脚本居然把我的集群搞崩了!
前端·人工智能·后端
计算机魔术师37 分钟前
索尼与华纳起诉Anthropic,指控其大规模盗用版权音乐训练Claude
前端
恋猫de小郭42 分钟前
AI 时代,一个优化 Flutter 的重复代码工具 Deslop
android·前端·flutter
穗余42 分钟前
Typescript let和var区别
前端·javascript·typescript
晓得迷路了1 小时前
栗子前端技术周刊第 144 期 - Rspack 2.2、pnpm 12、Solid 2.0 RC...
前端·javascript·css