近些年来,随着智能手机的普及,二维码在越来越多的领域被应用,我们每天都可能会用二维码支付,用二维码加好友,用二维码传递着各种各样的信息。这由一个个小方块组成的二维码为什么可以隐藏这么多的信息在其中。要了解二维码,我们先要知道什么是二维码。二维码又称QR Code,是用某种特定的几何图形按照一定规律在平面上分布黑白相间的图形记录数据信息的编码,它比传统的条形码能存储更多的信息,也可以表达更多的数据类型。
下图中两个二维码应该是我们最常见的两种二维码,但实际上除了这两种二维码,我们的二维码还有着许多不同的版本。从最小的21X21到最大的177X177的,一共有40个版本,这40个版本的二维码,除了体积不一样之外,它们的关键区别在于,版本越高,二维码可以储存的信息越多。那么这些黑白相间的小方块是如何存储信息的呢?
二维码的原理其实与计算机是怎么识别0和1的原理相似。通过二进制,假设一个白的小方块代表“0”,一个黑色的小方块代表“1”,这时我们规定一个表格出来,当01000001代表字母A时,用二维码来表示的话就是白方块、黑方块、五个白方块、黑方块,然后我们用手机一扫描,这些小方块被转换成0和1,再对照编码表,就会显示出二维码要告诉我们的信息是A。
当然,上面只是简略的说一下二维码存储信息的原理。在实际使用过程中,我们扫二维码时,手机首先是定位二维码的位置,二维码上左上、右上、左下位置那三个大方块,就是用来定位的。不过,除了这三个大方块,有些二维码还会有虚线和稍微小一点的方块,这也是用来定位的。我们的手机定位完之后,就要先分析这个二维码的大概情况,所以在大方块的周围区域,就会包含二维码的版本和数据编码之类的信息,然后剩下的区域就是存储数据额区域。但有时在我们扫码的过程中,遇到提示二维码被阻挡或缺失一部分时也不影响我们扫码的情况,这是为什么呢?
原因就是在存储数据的区域里,它是分成两部分的,一部分是二维码需要存储的数据,另一部分是用来纠错的,这个纠错的我们就可以理解成是备份区域,所以即使有些二维码被遮挡住了一部分,也不会影响识别。但是不同的二维码有着不同的容错的等级,总共四个等级,容错等级越高的二维码,允许被遮挡的区域就越大,最高等级的二维码容错率可达到40%。不过容错等级越大的二维码,就代表着备份区域越大,它所能存储数据的区域就相应的越小。
最后,在日常的生活中,我们已经见过了许许多多的二维码,为什么这些二维码小方块的分布都比较均匀,没出现过某一块是全黑或者全白的呢?这个是因为在生成二维码的过程中,为了避免出现大面积的白块或黑块导致扫码识别不了,所以要进行掩码的操作。二维码经过计算后,会在上面这八个款式里选择一个进行处理,处理完后二维码的小方块分布才会变得均匀。
在现如今,二维码的安全性也在受到挑战,带有恶意软件或病毒的二维码也在广泛传播,防范二维码的滥用也在成为一个急需解决的问题。所以希望大家以后在扫描二维码的时候一定要小心谨慎!