首页 >

不同的软件生成的二维码为什么不一样? – 网络|

我战网怎么安装不了,网页模板在哪里下载,移动信号上怎么有一个r字母不同的软件生成的二维码为什么不一样? - 网络|不同的软件生成的二维码为什么不一样

(1)二维码有没有被人类用完的可能?

(2)有没有可能存在相同的二维码,但是其原始信息却不一样?

可能这也是很多朋友的疑问,全世界每天有很多人都在使用二维码,据估计可能一天产生的二维码就达上百亿,那么长此以往下去,二维码不就用完了吗?万一哪天别人新生成的支付宝收款码正好是偶之前用过的,那钱岂不是就转给偶了?哈哈,偶想说,你想得美。马云爸爸会允许吗?下面就偶自己的理解,给大家讲讲其中的原理。

首先需要先补充一点二维码的知识,不感兴趣的朋友可以直接跳到文末解答疑问的部分。

01

二维码原理简介

通俗的讲,二维码就是使用某些特定几何图形按照一定规律排列从而达到记录符号信息的一种编码技术,编码的输入端是网址、电子名片、邮件地址等,输出端是二维的黑白方块矩阵。编码的码制有很多种,最常见的就是QR(Quick-Response)code,此外还有DataMatrix,MaxiCode等等。

典型的QRcode如上图所示,主要分为功能图形、编码区格式两大块,其中功能图形包括位置探测图形、位置探测图形分隔符、定位图形和校正图形

校正图形:与规格对应,一旦规格定下来,校正图形的数量和位置也就确定了

格式信息:这个代表二维码的纠错级别,二维码总共有为L、M、Q、H四种纠错等级,L最低,H最高,等级越高,二维码可被正确扫描的概率就越大,但同时二维码可携带的有效信息也会变少

版本信息:可以理解为二维码的规格,QR码符号共有40种规格的矩阵(一般为黑白色),从21×21(版本1),到177×177(版本40),每一版本符号比前一版本每边增加4个模块

数据和纠错码:数据就是指真实编码后的内容,比如网址对应的黑白块,纠错字是为了纠正传输过程中丢失部分信息后,能正确解码用的,日常生活中二维码经常会被人为扭曲、磨损,此时纠错码就派上用场了。

二维码特点一:编码的数据容量量有限制

二维码对编码的数据容量是有限制的,你给偶一本新华字典,偶肯定是无法给你生成二维码的,因为新华字典字太多了,远远超出了二维码容许的数据上限

上图是QR码可以容纳的数据容量表,可以看出,通过QR码制来生成二维码,最多容纳7089个数字或者4296个字母,如果是中文汉字,那么采用UTF-8编码的汉字最多可以容纳984个,差不多一个头条问答的字数。这样就从源头上保证了可以被转成二维码的信息是有限制的。

二维码特点二:二维码的编码是可逆的,原始信息和二维码一一对应

二维码的所有编码步骤都是可逆的,如果给偶一个二维码,并且告诉偶编码步骤中的参数设定,偶一定可以把原始信息给解出来,这就从原理上保证了原始信息和二维码的一一对应关系。确实,二维码的“长相”是有限的,但是可用于编码的数据量也是有限的,而且二维码的数量是大于可编码信息的组合数量的,这也是保证原始信息和二维码一一对应的数学证据。

02

回答上面的两个问题

(1)二维码有没有被人类用完的可能?

答:问题本身不成立,这是错误的把二维码当成了凭空生成的密钥之类的东西了,实际上可用于生成二维码的数据量(数字、字幕、汉字、日文)就是有限的,并且小于二维码在数学上的数量上限,所以本身问题就不成立。

(2)有没有可能存在相同的二维码,但是其原始信息却不一样?

答:如果仅从“长相”上相同,即黑白块数量、大小、位置都一样,是有可能对应的原始信息不一样的,这是因为二维码的编码,是原始信息+纠错级别+编码类型(数字、字母、汉字等)+版本信息四项因子一起构造的,两个不同的信息,比如www.baidu.com和“周杰伦”,如果选择的纠错级别、编码类型、二维码版本不一样,是可能生成“长相”完全一致的二维码的。如果两张“长相”一样的二维码,而且纠错级别、编码类型、版本信息也完全一致,那么逆推出的原始信息,一定是一样的。

03

衍生问题

有朋友可能会继续问,既然能被生成二维码的信息是有限的,那么总有一天所有组合都被人类用完了,这个时候肯定会出现重复的二维码,这个怎么保证安全呢?事实上,二维码除了以上维度以外,还有一个时间维度,二维码分静态二维码和动态二维码,静态二维码永远有效,而动态二维码则在一定时间内有效,比如支付宝的付款码,这有点像计算机中的HDCP动态分配IP地址技术,如果某个用户下线了,那么他的IP地址会分配给新上线的用户,这样就能保证一个局域网内的IP地址够用的,当然如果用户量达到上限,还是要新增IP地址范围的,这也是IPv6存在的主要原因。


不同的软件生成的二维码为什么不一样? - 网络|
  • 学习单片机用什么软件APP学习好? - 网络|
  • 学习单片机用什么软件APP学习好? - 网络| | 学习单片机用什么软件APP学习好? - 网络| ...

    不同的软件生成的二维码为什么不一样? - 网络|
  • 青岛HTML5适合女生学吗? |js html 清空
  • 青岛HTML5适合女生学吗? |js html 清空 | 青岛HTML5适合女生学吗? |js html 清空 ...

    不同的软件生成的二维码为什么不一样? - 网络|
  • 有能设置排班的手机考勤软件推荐吗? - 网络|
  • 有能设置排班的手机考勤软件推荐吗? - 网络| | 有能设置排班的手机考勤软件推荐吗? - 网络| ...