支付码、名片码、校园码、乘车码……疫情期间谁都离不开一个健康码,可以说二维码已经渗透到中国人生活的每个角落,它驱动着中国经济。
据微信团队称,在新冠病毒流行期间,仅微信就使用了1400亿个二维码。有很多人可能会好奇,使用量如此巨大的二维码会被用完吗?如果用完了怎么办有替代方案吗?
答案是肯定的,它肯定会被用完,因为二维码码的大小是有限的,所以二维码的数量是有限的。
但是,如果要把所有二维码用完,那需要很长的时间,因为二维码的数量甚至超过了宇宙的原子总数,而且二维码还有不同版本。
在深入了解二维码是否会被使用完之前,我们先简单了解下,二维码的工作原理。
二维码的工作原理
二维码是日本的Denso公司在1994年9月开发的矩阵二维码符号,它其实就是将信息分成黑白小方块填入一个大方块里。
然后,你的手机或者扫码工具通过读取被填入的信息,之后将信息转化成你或机器看得懂的文字或符号。
我们知道,我们的计算机是使用二进制的算法,在计算机的世界里,所有的字母和汉字都可以通过二进制的0/1来表示。
在二维码中,白色的小方块代表0,而黑色的小方块代表1,当它们拼凑在一起就变成了一个0/1自由组合的图形,这是计算机世界所喜欢的,很容易做成计算机“熟悉”的信息。
你可能已经发现了,无论二维码如何翻转,甚至是损坏了一部分,我们都是可以将它们扫描并读取出来。
既然每个小方块都有特殊的意义,那为什么翻转或者损坏一部分还能读取呢?
图为:二维码的一些标识符
其实设计者也考虑到了这一点了,二维码除了充满我们想要的数据外,还有一些标识符帮助正确读取代码。
能把翻转的二维码读取出来的是因为有二维码三个角落里的位置探测图形,而能把损坏到一定程度的二维码读取出来,取决于编写代码时使用的错误纠正级别。
那么我们到底能生成多个二维码呢?
目前二维码的正式版本有40个,在版本1-40中,最小值为21*21的矩阵,而最大值为177*177的矩阵。
其中微信名片为37*37矩阵规范,而微信支付码为25*25矩阵规范。我们就来简单计算下微信支付能生成多少个二维码组合。
为了便于理解,我们使用上图2*2的矩阵规范为例子。
在这个图形中,每个小正方形里都可以有黑白两个颜色的变化,一个四边形中可以组合多少个形状呢?
这个很简单,一个方格有两种可能,两个方格有四种可能,三个方格有八种可能,四个方格有16种可能。
图为:2*2规范的二维码有16种组合
所以,这样一个2*2的矩阵里可以组成2^4,总共可以得到16个图形。
现在回到25*25微信支付代码,每行有25个方块,共25行,在去除方块进行定位、冗余的纠错方块等后,剩下478个方块。
在二进制中,每个方块只有黑白两种选择,所以478个小方块理论上总共可以组成2^478个二维码。
这个二维码数据已经和宇宙总原子数量10^80次方已经差不多了。
地球的二维码能用多久呢?
微信在疫情期间总共使用了1400亿个二维码,我们假设微信每年使用6000亿个二维码。简单的算一下,微信支付的二维码够微信使用,2^478/ 6000亿= 1.301 x 10^132年。
放眼全世界,一天二维码的使用量大概在100亿个左右,即使全世界的老百姓都使用25*25规范的二维码。
这个数据是2^478/100亿,差不多是7.806×10^133天,宇宙灭亡前,这个规范的二维码都不会被用完。
而且即使真的有一天二维码需求量再暴涨,那也不用担心,现在已经开发了40个版本,可以其实可以开发更多版本来替代。
所以,放心的去使用吧,完全不用担心二维码会被用完。
最后
现在几乎所有人每天都会和二维码接触,这个携带着互联网信息的载体,其实并不是完全安全的。
许多不法分子通过二维码传播互联网垃圾,导致扫码者出现金钱损失。
因为现在大多恶意软件是很难直接在手机上安装的,所以根本没法传播,但是二维码却是一个良好途径。
所以,扫码前,先确定二维码的安全性;扫码后,注意手机的一些提示。非常重要!