二维码是怎么做出来的?
2017-10-13佚名
佚名
移动互联网时代,二维码经常出现在我们的生活中,但其实二维码的本质就是根據一个固定的计算转换方式,把一段文本信息转化为一个能够被识别的图片。如此简洁而神秘的二维码中还有哪些神秘有趣的知识呢?一起来看看。
功能区和编码区
一眼看上去,二维码就是一些黑点、条纹、方框组成的一个正方形的块状图形,很难寻找出其中有什么逻辑,但毋庸置疑,这些图形的位置排列肯定是有规则的。总体上二维码可以分为功能区和编码区,功能区主要用于定位,编码区则是真正存储数据的。
在功能区中不同的图形也有不同的作用,包括位置探测图形、定位图形、校正图形;在编码区则分有格式信息、版本信息、数据和纠错码子。不过,在这两个模块中,并不是存储的东西都是我们需要的信息,某些二维码中甚至只有一小部分的东西是我们需要的。
当然,说到二维码我们还有一个不得不提的东西,那就是QR Code,几乎所有的二维码都用的是这种编码方式,里面具体的编码规则我们就不做详细的解读了。我们只需要知道,掌握了这种二维码的编码方式,我们甚至可以用纸和笔把我们所需要的二维码画出来,当然前提是你不嫌麻烦。
目前,很多平台都免费生成二维码,如果有特定需求而一般平台上没有提供的话,网络上也有很多免费生成二维码的途径。那么问题又来了,既然二维码的生成如此简便,那么会不会有人用二维码来诱导诈骗呢?
按照编码规则来说,二维码图片的本质就是一段文本信息,这样一段文本信息是没有任何途径进行更多“自动操作”的,所以说如果有人想要利用二维码进行诈骗,最大的可能就是把一个恶意的网址做成二维码,只要我们不下载其中的内容或是不访问这个网站是不会受到攻击的。
扫描二维码时只跳转链接?
一般我们扫二维码的时候只都听到“嘀”的一声,或许你已经习惯了每次扫码都会跳转到一个新页面,但并不总是扫码后跳转到一个链接这么简单,而是对扫码返回的信息做不同处理。跳转到一个链接只是其中一种方式。
那么在我们扫描二维码的时候究竟发生了什么呢?过程是这样的,当我们用手机的摄像头扫描二维码或者是用“识别图中二维码”功能时,手机开始读取信息,在获得信息后首先得对信息进行解密,再把获得的结果当作参数进行处理,最后才得到处理的结果。
说到这里可能大家还有个疑问,为啥同样的手机扫描二维码的时候识别有快有慢呢?这其中影响的因素主要有二维码的平整度、二维码内容的识别度、存续的信息量的大小。当然不同的App针对扫码做的优化措施也不一样,这同样会影响识别二维码的速度,另外不同手机摄像头硬件配置跟识别的快慢同样有关系,这点是毋庸置疑的。
扫完二维码以后,我们获取信息(名片、地图、WiFi密码)、网站跳转、广告推送(视频、音频广告)、付款、获取服务等。功能如此强大,二维码想不火都难。
二维码为啥是黑白的
或许你曾在某地见过彩色的二维码,但不可否认,我们生活中见到的大多数二维码都是黑白的,这又是为什么呢?原因只有一个:黑白的二维码扫描的时候速度会更快。
稍懂点计算机知识的人都知道,在数字信息中很多东西都是用二进制来表示的,手机在读取二维码信息的时候也是这样,读取的信息中包括了图片颜色,其中1代表白色(色值#ffffff),0代表黑色(色值#000000),在所有的颜色中,这二者的色值差最大,因此在识别的时候就最容易。
那么如果我们用其他的两种颜色来代替黑色和白色呢?有兴趣的读者可以做一下实验,分别扫一下彩色的二维码和黑白的二维码,应该能明显感觉到黑白的更快。
(选自2017年第5期《大众科学》)endprint