二维码支付码的工作原理那点事

二维码支付这些年发展的如火如荼,前两年在另外一个站上也大致分析过二维码支付的原理,年底摸摸鱼,重新整理一下吧。

(说实话我很讨厌有的人借着学习的名义把博客上的文章抄来抄去)

1、数字支付码

数字支付码就是打开微信和支付宝付款界面的那串玩意,通过数字找到对应账户,再从账户里扣钱,就这么一回事。

看起来很简单,实际上这里面的过程就非常复杂了。

大致上要解决的问题有这么几个:

a.随机性

b.识别性

c.可用性

d.安全性

首先,随机性就意味着生成的结果必须是离散的,如果按照序列变化,很容易就会被穷举出来;

其次,识别性就要求通过一串数字能很快的找到对应的账户,这就要求对数据的处理时间不能太长太多;

然后,可用性是说在网络不好的情况下,要允许客户端生成离线序列,不影响支付的可用性;

最后,安全性不说都知道了,要保证一码一账户,不能随便被人随时随地造一个有效的出来;

目前网络上讨论的不外乎两种方案:

第一种,直接生成支付码下发给客户端,完整存储数字序列。但是这依赖着服务端,如果有效期过长会有安全问题,如果有效期太短,又会对数据处理有压力,更可怕的是用户数量上去了,这个量就是一个天文数字。

第二种,基于时间的TOTP算法,但是纯粹这种算法是不能直接识别账户来源的,也就意味着要把所有用户的密钥全部计算一遍才可能知道是谁的,这个数

  • 3
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值