“滴” 的一声,钱没了

苦逼的码农

共 1790字,需浏览 4分钟

 · 2021-04-02


昨天
女朋友问了我一个问题



我要是有这个水平

还会是现在这个样子?

早就走向人生巅峰了



好了,让我们来看看

钱,究竟是如何被扫走的

还不是你剁手剁没的


在回答这个问题之前

先来看看我们平时是怎么用微信转账的



不要在意为什么只转了1分钱

因为真的没钱了

转账和二维码支付有什么关系呢?

其实这里涉及一个核心问题

那就是身份验证



说人话

那就是微信后台在处理转账时

需要知道是

帅饼转给了女朋友

而不是反过来

我也想反过来呀


同理

我们在扫码支付时

微信也要知道

到底是谁扫了码

总不能女朋友扫了码,扣的是帅饼的钱吧

好像也没差?



那么

关键问题来了

商家怎么通过二维码确定这是谁?

回答这个问题之前

我们要先知道二维码的本质是什么



大家二维码听得很熟悉了

有没有想过

我猜没有

既然有二维码

那么有没有一维码呢?



还真有

而且就是我们很熟悉的

条形码

(没错,一维码也叫条形码)


条形码有很多种类


这么多种条形码

全部讲完是不可能的

(你们也看不下去)


这里我就讲讲

最常见的 EAN-13

也就是


首先

我们可以把条形码分成上下两部分

上面

黑白相间的条纹

下面

13 个数字

没错,就是 EAN-13 的那个 13


先来解释上面的黑白条纹

我们需要先记住下面的编码规则

白色为 0,黑色为 1




如上图所示

我们标注了三条红线

第一条红线所在条纹是白色

代表了 0


第二、第三条红线所在则是黑色条纹

代表了 1

 (没错,又是二进制编码)


注意

一个最小的条纹宽度是 0.33 mm

那些看起来比较粗的黑色条纹
其实是由多个单位条纹组合而来
也就是很多个 1 连在一起


换句话说

图中这三个条纹组成的编码是 011

EAN-13 有自己的码表
跟ASCII 并不一样
这些二进制编码按照码表转换后
可以跟其下方的数字一一对应


(没事,看不懂也没关系)

你只要知道



细心的同学会发现

上面的转换图

转换到数字的时候只剩下 12 个字符了

(饼哥就是这么严谨)


这当然是有原因的

不过,在说明这个原因之前

我们需要搞明白另一件事



机器扫条形码的时候

会发出光线

像这样



(啊不,上错图了)




小学二年级的时候我们学过

白色会反射所有色光

黑色会吸收所有色光

扫描器通过分析条形码的反射光线

就可以得到条形码色块的分布情况

进而再进行编码、转换


回到前面的问题

为啥识别转换只有 12 位呢

开头的数字去哪了?



观察上面条形码

我们会发现前置码 6 上面

根本就没条纹

(扫得出来才见鬼呢)


那咋整呢

就这么抛弃它了?

当然不是

这里可以根据左侧数据符进行推断

左侧数据符中的每个数字都有一个奇偶性

(与我们平常理解的奇数偶数不一样)


根据不同的奇偶性排列

可以推断出前置码是什么

至于怎么推的



反正国内都是 6 开头

(那你还讲那么多)


好了

这就是一维码的原理

是不是很简单

(出去又可以装逼了)




接下来

让我们看看二维码的原理


和一维码一样

二维码种类繁多

我们生活中最常用的是这种



QR Code

(Quick Response Code)

快速响应矩阵图码

顾名思义

发明者希望 QR 码可以快速解码其内容

(滴一声就完事,确实挺快的)


二维码的原理

本质上与一维码差不多

包括核心的

光反射

二进制编码

编码表



当然

区别也有

相比一维码只有单向信息

(条纹的长度对编码无影响)

二维码在横竖两个方向上

都能蕴藏信息



而且不比一维码只能存储数字和简单的符号

二维码可以储存汉字信息

容量也大了 n



另外

QR Code 最大的特点

在于它

左上、右上、左下

的”回“字型定位标志


(再给你们一次机会)


有了这三个定位标志

你就可以从任意方向扫码了




搞明白了二维码

我们再回到最初的问题

首先

仔细观察你的付款码页面

你会发现付款码上面

还有一个条形码



甚至你会发现条形码上方还有小字

点击可以看到一串 18 位的数字


聪明的你可能已经猜到了


没错

不论是条形码,还是二维码

作为付款码而存在时

它们实际上隐含的信息

就是

这一串数字


它能让微信确定这是哪个用户



扫码付款的整个流程

其实就很清楚了



拿到 18 位的数字串后



商家后台再调用微信支付的接口


然后

.

.

.



.

.

.


你的钱就这样没了


.

.

.



你说商家会不会保存你的付款码来干坏事?

并不能,付款码每分钟都会刷新


当然

大家还是要好好保护自己的付款码

毕竟一分钱也是钱嘛



浏览 72
点赞
评论
收藏
分享

手机扫一扫分享

举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

举报