国人每天扫码那么多次,二维码为何还没被用完?
二维码在生活中的应用越来越广泛了,每个人每天在生活中都要消耗大量的二维码。我们知道,我国有13亿人口,而世界上共计有70亿人口,如果每个人每天都消耗10个二维码,那二维码会不会被很快消耗完?
二维码事实上,根据目前的消耗二维码速度,想要用完全部的二维码,几乎是不可能。这是因为二维码比我们想象中的要多得多。
首先我们常见的二维码就是由黑白两种颜色组成的小方格,其实,这些黑白方格在机器识别时,并不是识别成黑白色,而是由0、1组成的二进制,其中白色方格代表着“0”,而黑色方格代表着“1”。
我们平时见到的二维码时37*37的格子,但是每个二维码都有三个固定的方格,不仅大小固定,而且位置也是固定的。它们的存在就是为了方便机器识别二维码的顺序,也为了定位二维码,除此之外不储备任何信息。
在这种情况下,一个37*37的二维码格子,可以产生37x37-49x3=1222个格子。而这1222个格子,可以组成2^1222个不同的二维码排列组合,形成2^1222个二维码。
光看文字,你可能觉得这也没多少个二维码,但事实上2的1222次方可以形成以下这么多二维码。
更可怕的是,二维码并不是只有一种规则,有的是21*21,有的是41*41,还有的是177*177,照此计算的话,人类能够生成的二维码数量,可以供宇宙中每一个原子使用。所以即使我们用到天荒地老,都不会用光二维码。
生成的二维码会重复吗?可能会有很多人问,我们每天使用大量的二维码,那机器在生成二维码时会不会产生混乱,不小心重复生产了二维码供不同人使用。比如:我刷二维码时,和马云刷出来的刚好一致。
其实这种可能性的发生几乎为0,原因是因为二维码并不是随机生成的,而是储备着大量信息,比如:使用人的ID,时间,应用软件等。
这些信息累积叠加在一起时,就会形成独有的二维码,所以二维码并不会被重复使用。
除此之外,还有人会问,可以伪造二维码吗?我们知道二维码是由黑白两色的格子组成的,在PS中非常容易伪造,如果我们伪造一个二维码,那机器能识别出来吗?
其实,虽然伪造二维码比较容易,但是伪造的二维码可能会被机器识别出无用信息。原因是因为很多二维码是“一次性用品”,比如:支付用二维码。还有更多的二维码是不包含任何内容的二维码,原因很简单,因为二维码的数量实在是太多了,想要随意伪造一个二维码并不难,难得是这个二维码刚好包含重要信息。因此我们根本不用担心别人冒牌伪造二维码。
识别二维码的原理前面我们说过,机器识别二维码并不是录入黑白方格,而是将黑白方格所代表的含义录入进去。比如:机器识别的是:黑黑黑白黑白,那么对应的信息就是:111010。而111010对应的信息就是机器提前设定好的信息,比如:网页、名片或者支付程序。
为了保证信息能够完整被传递,二维码上其实包含着非常多的冗余信息,这些冗余信息可以提高信息的准确度。
根据香农第三定律我们知道,信息的冗余可以帮助信息完整的传递。比如:小时候家长让孩子帮忙买酱油时,会再三叮嘱要买酱油,不是醋,是某个品牌的酱油。虽然这些话中有大量的废话,但是这些废话加强了重要信息的传递:买酱油。
二维码也是一样,有时遮挡了一部分二维码,机器照样也能够扫描出对应的信息,原因就是遮挡的这部分可能是冗余信息。凭借着这些信息,机器能够很容易识别出二维码所包含的信息。
总结二维码的好处在于二维码总量大,即使每人每天使用20个,二维码的储量也能够使用到人类灭绝的一天。
正是因为二维码的总量非常大,因此即使随便画一个二维码,也不一定能扫出有用的信息,一定程度上可以保证我们的数据安全。