二维码在日常生活中应用广泛,每个人每天都会消费大量的二维码。我们知道,中国有13亿人口,而世界总人口为70亿。如果每个人每天消费10个二维码,二维码会很快被消费掉吗?
事实上,按照目前消费二维码的速度,几乎不可能用完所有的二维码。这是因为二维码比我们想象的要多得多。
首先,我们常见的二维码是由黑白两种颜色组成的小方块。其实这些黑白方块在机器识别的时候并不是识别为黑白的,而是一个由0和1组成的二进制系统,其中白色方块代表“0”,黑色方块代表“1”。
通常我们看到的二维码是37*37的正方形,但是每个二维码都有三个固定的正方形,不仅大小固定,位置也固定。它们的存在是为了方便机器识别二维码的顺序,并对其进行定位。此外,他们不保留任何信息。
在这种情况下,一个37*37的二维码网格可以产生37×37-49×3 = 1222个网格。而这1222个网格可以形成2个1222个不同的二维码,形成2个1222的二维码。
光看文字,你可能会觉得二维码不多,但其实2的1222次方可以组成如下这么多二维码。
更可怕的是,二维码的规则不止一个。有的是21*21,有的是41*41,有的是177*177。照此计算,人类可以生成的二维码数量,可以被宇宙中的每一个原子使用。所以即使我们永远用,也不会用完二维码。
生成的二维码会重复吗?很多人可能会问,如果我们每天大量使用二维码,机器在生成二维码时会不会产生混淆,不小心把二维码复制给不同的人使用?比如我刷二维码的时候,和马云刷出来的一模一样。
其实这种可能性几乎为零,因为二维码不是随机生成的,而是存储了很多信息,比如用户的ID、时间、应用软件等。
当这些信息积累叠加起来,就会形成一个唯一的二维码,所以二维码不会被重复使用。
另外,有人会问,可以伪造二维码吗?我们知道二维码是由黑白方块组成的,在PS中非常容易伪造。如果我们伪造一个二维码,机器能识别吗?
实际上,虽然伪造二维码很容易,但伪造的二维码可能会被机器识别为无用信息。原因是很多二维码是“一次性产品”,比如支付的二维码。还有更多不含任何内容的二维码。原因很简单,因为二维码太多了,随意伪造一个二维码并不难。难得的是,这个二维码正好包含了重要的信息。所以我们完全不用担心别人伪造二维码。
识别二维码的原理我们前面说过,机器识别二维码不是输入黑白方块,而是输入黑白方块所代表的意义。比如机器识别黑、黑、黑、白,那么对应的信息就是:111010。而111010对应的信息是机器预先设置的信息,比如网页、名片或者支付程序。
为了保证信息的完整传递,二维码实际上包含了大量的冗余信息,可以提高信息的准确性。
根据香农第三定律,我们知道信息冗余有助于完成信息传递。比如小时候父母让孩子买酱油,会反复告诉孩子买酱油,不是醋,是某个牌子的酱油。虽然这些话里有很多废话,但是这些废话加强了重要信息的传递:买酱油。
二维码也是如此。有时候二维码的一部分被屏蔽了,机器还是能扫描到相应的信息。原因是被屏蔽的部分可能是冗余信息。有了这些信息,机器就可以很容易地识别出二维码中包含的信息。
总结的优势在于二维码量大。即使每人每天使用20个二维码,二维码的储备也可以用到人类灭绝的那一天。
因为二维码的量非常大,即使只是画一个二维码,也不一定能扫描出有用的信息,这在一定程度上可以保证我们数据的安全性。