站点图标 谷姐靓号网

还是二维码重不重复问题-米酷

Rate this post

看了刚才发的帖子各位大大的回答,明白二维码是可能重复的,但是机构不一样没有意义,我就想到会不会出现这样情况,举例:去菜市场买菜,老板阿三给了微信的收款二维码,解析出来的字符串是123456789,对应的收款人是阿三,这时候我没注意,用的是支付宝扫二维码,刚好解析出来的字符串是123456789对应有个收款人是李四,那如果我支付了是不是就支付给李四的支付宝了?
避免这种情况发生是不是加个识别码,但扫码出来发现不是我支付宝的码就提示错误,那这个识别码是不是大家都应该有个不一样的,累死广播频率,中央电台用了这个频率上海电台就不能总,那这个管理分配识别码的机构存在吗?

热议
2楼 casm 6小时前

二维码的最高像素可以达到177×177,其中每个像素可以是黑或者白。那么二维码的最大组合是~有限的,虽然这个数量是个天文数字,但字符串的组合是无限的。

主要讨论不是重复问题,而是会不会被用尽。假如123对应的二维码是A,会不会存在另外一个二维码对应是也是123?

答案是当然会,因为把二维码挡住一小部分,照样能扫出相同的结果,所以二维码和字符串是多对一的关系。但是二维码有规定字符串的字数限制,就解决了用尽的问题

3楼 glisten 6小时前

你呀,没救了,码都有标识,怎么可能扫出来的只会是1234567,你的收款码那么大那么多的小方块,他可能是1到1000,也不可能是1到9

4楼 casm 6小时前

二维码的组合数量虽然是有限的,但数量极其庞大。在实际应用中,二维码的组合数量足以应对绝大多数需求,不会被轻易用尽。让我们来看看为什么这是如此。

1. 二维码的组合数量
以版本40的二维码为例,它有177×177个模块。虽然每个模块可以是黑或白,但并不是所有的组合都是有效的二维码,因为二维码的结构中有很多固定的模式和错误纠正信息。此外,不同的版本和错误纠正等级也影响可用的组合数量。

即便如此,二维码的组合数量仍然是非常庞大的。版本40的二维码,假设每个模块可以独立地为黑或白(实际上并不是这样,因为有很多结构性限制),那么组合数量将是:

2
177
×
177
=
2
31
,
329
2
177×177
=2
31,329

这是一个非常巨大的数字,远远超出当前任何实际应用的需求。

2. 实际应用中的情况
在实际应用中,二维码不会被用尽,原因如下:

数据需求有限:虽然理论上有无限多的字符串组合,但实际应用中需要编码的字符串数量是有限的。例如,一个公司可能只需要生成数百万或数亿个二维码用于产品追踪、营销活动等。
不同版本和纠错等级:二维码有40个版本和4个错误纠正等级,不同的版本和错误纠正等级可以生成不同的二维码,进一步增加了可用的组合数量。
生成机制:很多应用使用动态二维码,使用URL来指向服务器上的动态内容。这种方法使得二维码的实际数据量需求降低,因为二维码本身只需要包含一个短URL,而具体的数据在服务器上进行处理。
3. 实际案例
即使是在二维码广泛使用的场景,如支付系统、门票系统、产品追踪等,二维码的生成数量远远没有达到其理论上限。例如,微信支付和支付宝的二维码每天被生成和使用数亿次,但这些数量相对于二维码的组合数量仍然是微不足道的。

总结
二维码的组合数量是如此之大,以至于在任何现实可预见的情况下都不会被用尽。即便有某些特定场景需要生成大量二维码,设计合理的生成机制和利用不同版本和错误纠正等级可以确保二维码的唯一性和充足性。

5楼 张少涵 6小时前

二维码有31329个方格,可以编码3KB 的数据。扫描之后会解析出文字内容,每家都会在开头添加特定标识,比如支付宝是https://qr.alipay.com/xxxxxxxxxxxxxxxxxxxxx,这种情况下不可能重复。

6楼 glisten 6小时前

二维码的最高像素可以达到177×177,其中每个像素可以是黑或者白。那么二维码的最大组合是~有限的,虽然这 ...

你这就钻牛角尖了,简单点讲假如你QQ是12345它生成的码就是QQ12345,而不是12345,每个码前边都加上QQ这个标识,就不存在冲突或者重复了。明白吗

7楼 micboy 6小时前

你用微信扫描支付宝的就知道了

8楼 casm 5小时前

你这就钻牛角尖了,简单点讲假如你QQ是12345它生成的码就是QQ12345,而不是12345,每个码前边都加上QQ这 ...

其实是从数学角度,用极限思维考虑二维码会不会被用尽。就像ipv4的组合虽然很多,但是架不住人口更多,就不够用~

9楼 glisten 5小时前

其实是从数学角度,用极限思维考虑二维码会不会被用尽。就像ipv4的组合虽然很多,但是架不住人口更多,就 ...

中二少年,别钻研这个了,早点休息吧晚安

10楼 米酷 5小时前

张少涵 发表于 2024-6-24 00:30
二维码有31329个方格,可以编码3KB 的数据。扫描之后会解析出文字内容,每家都会在开头添加特定标识,比如 ...

也就是定义自己的识别码,每个人自己定义,如果刚好外国也有个支付宝,那就冲突了

12楼 赵博士 4小时前

有生之年见不到系列

13楼 胖虎_ 3小时前

你去解析一下就知道了。阿里和腾讯的收款码是啥样的。前面是自己的商品名称alipay 加上一个网址

收款码实际上就是一个网址,怎么重复。解析出来是对应的连接

14楼 胖虎_ 3小时前

也就是定义自己的识别码,每个人自己定义,如果刚好外国也有个支付宝,那就冲突了 ...

他是一个地址。国内外怎么可能有同一个域名,域名是唯一的。
alipay.com 这个域名就不会出现国外还有一家公司拥有同一个域名的。
如果是一家公司,他直接用前缀区分即可。

15楼 luckyc 3小时前

他是一个地址。国内外怎么可能有同一个域名,域名是唯一的。
alipay.com 这个域名就不会出现国外还有一家 ...

那如果是付款码呢,付款码就是一串数字,而且还可以离线支付(商家联网)
比如两家机构的付款码都是18位的,你展示A机构的18位码。
收款方用B机构的收款工具扫码,此时刚好该数字对应B机构的一位用户离线支付成功,商家收款成功。用户闹起来说没扣款让再收一次

目前支付宝微信的被扫付款码都是18位数字

16楼 本来无一物 3小时前

想太多了, 不可能重复的.
1. 二维码你甚至可以理解为有容错率的Base64 Encode, 怎么可能会重复.
2. 你所说的这种情况不存在. Alipay 和 WeChat Pay 是一个成熟的支付工具, 不会犯这种低级错误. 如果你用相机扫描一下他们的二维码你就知道原因了. 举个不太恰当的例子, 一个是 WeChat://*.wechat.com/orderid=123456, 另一个是 AliPay://*.alipay.com/orderid=123456. 这俩怎么会出现重复的情况呢?
3. 国外也有支付宝, 你是说国外的支付宝必须也得叫 AliPay? 就算是国外的支付宝也叫 AliPay, 那么国外的这个 AliPay 的标准一定会和国内的一模一样吗? 好, 就算是一样. 那么国外的二维码内容只能是 AliPay://*.alipayglobal.com/orderid=123456, 不可能出现重复的情况.

对于 3. 你所担心的是二维码内只包含用户 ID 和款项信息, 这样确实可能出现问题. 但一个成熟的支付工具, 早已经通过市场的验证了, 不过犯这种低级错误. 并且支付宝/微信支付一定会进行信息校验的.

与其担心这个, 不如担心一下, 50 多亿年后太阳系毁灭的事情.

17楼 luckyc 2小时前

想太多了, 不可能重复的.
1. 二维码你甚至可以理解为有容错率的Base64 Encode, 怎么可能会重复.
2. 你所 ...

看楼上,付款码都是18位数字。而且可以离线被扫支付。

18楼 奧巴马 1小时前

看楼上,付款码都是18位数字。而且可以离线被扫支付。

那18个数字是动态的,跟帐号绑定的. 就好比OTP验证码 一样,根据一定算法算出来的.
要不然我给你一个18位数字就能付款?服务器并不是识别这18个数字这么简单.还要校验.和时间相关,10秒内时间戳. 可以看作一半是帐号,一半是密码.当然这个帐号和密码是虚的,是经过算法算出来的.结果是可校验的. 并不是结果相等.有可能是结果非负就是正确的. 具体原理会很复杂,可以看看 《加密原理》这本书

简单来说就是要在10秒内生成一个18位相同的数字,还要跟帐号绑定,还有能校验,这几乎不可能.
你10秒内从1数到999999999999999999都做不到.更别说解密了.

你能想到的,别人早就想到了.大聪明.

按你的想法我穷举下来就能付款?从1-999999999999999999.每个扫一次.

申明:本文内容由网友收集分享,仅供学习参考使用。如文中内容侵犯到您的利益,请在文章下方留言,本站会第一时间进行处理。

退出移动版