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

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

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

相关推荐
清幽竹客24 分钟前
vue-37(模拟依赖项进行隔离测试)
前端·vue.js
vvilkim24 分钟前
Nuxt.js 页面与布局系统深度解析:构建高效 Vue 应用的关键
前端·javascript·vue.js
滿28 分钟前
Vue3 父子组件表单滚动到校验错误的位置实现方法
前端·javascript·vue.js
夏梦春蝉1 小时前
ES6从入门到精通:模块化
前端·ecmascript·es6
拓端研究室2 小时前
视频讲解:门槛效应模型Threshold Effect分析数字金融指数与消费结构数据
前端·算法
工一木子3 小时前
URL时间戳参数深度解析:缓存破坏与前端优化的前世今生
前端·缓存
半点寒12W5 小时前
微信小程序实现路由拦截的方法
前端
某公司摸鱼前端6 小时前
uniapp socket 封装 (可拿去直接用)
前端·javascript·websocket·uni-app
要加油哦~6 小时前
vue | 插件 | 移动文件的插件 —— move-file-cli 插件 的安装与使用
前端·javascript·vue.js
小林学习编程6 小时前
Springboot + vue + uni-app小程序web端全套家具商场
前端·vue.js·spring boot