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

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。。

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

相关推荐
你的人类朋友21 分钟前
❤️‍🔥BFF架构版的hello world
前端·后端·架构
德育处主任22 分钟前
p5.js 三角形triangle的用法
前端·数据可视化·canvas
有事没事实验室35 分钟前
node.js中的path模块
前端·css·node.js·html·html5
十盒半价1 小时前
TypeScript + React:大型项目开发的黄金搭档
前端·typescript·trae
楚轩努力变强2 小时前
前端工程化常见问题总结
开发语言·前端·javascript·vue.js·visual studio code
鱼樱前端2 小时前
rust基础二(闭包)
前端·rust
菜鸟学Python2 小时前
Python web框架王者 Django 5.0发布:20周年了!
前端·数据库·python·django·sqlite
前端开发爱好者2 小时前
只有 7 KB!前端圈疯传的 Vue3 转场动效神库!效果炸裂!
前端·javascript·vue.js
pe7er2 小时前
RESTful API 的规范性和接口安全性如何取舍
前端·后端
Fly-ping2 小时前
【前端】JavaScript文件压缩指南
开发语言·前端·javascript