健康码互通方案优化

文章提出了设计全国通用健康码二维码的技术方案,目标是实现安全、高可用、可拓展和高性能。为了解决二维码信息过多导致的识别问题,提议使用加密的身份证ID并优化格式。同时,规划了一个路由中心来处理不同健康码程序的互认请求,支持协议转换和用户隐私保护策略。该方案关注了二维码的扩展性和用户授权的问题。
摘要由CSDN通过智能技术生成

背景

解决不同场景一码通–全国互认互扫
技术方案设计目标:安全、高可用、可拓展、高性能、易用性。

健康码二维码优化

要设计一个能互通的二维码,二维码需要放入的信息会更多,因为需要塞进去更多的内容。而二维码会因为字符串的长度而导致二维码的像素变大,像素越大时部分识别速度较慢,甚至部分低端手机无法识别,下图是不同像素的二维码对比。
在这里插入图片描述
当前二维码的字符串如下:

{“codeId”:“8d9408fb391514015576f76f993bbe91”,“lastReportTime”:1582729658000,“outTime”:1583334458000,“zoning”:“440100”}

里面里面的codeId是某二维码系统内部的ID,与其他健康通信是不必要,因此需要再二维码里面添加有效个人信息作为人的唯一标识(如:身份证ID),身份证信息属于个人隐私信息,不能直接铭文对外,因此可以对这些信息进行加密处理。这些信息二维码格式不使用json,直接使用冒号分割,减少字符串长度,我设计的二维码格式如下:

appid(20):证件类型(2):姓名(8):证件号码(13~18):时间戳(9):随机码(6):业务码(6)

例如:wx92104a59598d8649:10:欧阳娜娜:43048xxxxxxxx5335:13456789:123456:123456
DES加密后的二维码字符串

U2FsdGVkX18ptoXKcFaCA+jNHPOySbtx+GXCTJBdOphvVLraANUPPMAipUPA1InRjaoRUgBOHColu71VFCap5Sc9d533EyroKl3MXz+z0oW1XzfZ4ToMg3IyrvHrhQMN

其中appid是表示健康码程序应用唯一ID(全部大部分二维码都是用微信小程序,可以用小程序的appid)。

互通路由方案

开发一个路由中心,路由中心提供不同健康码程序的注册服务,提供标准的接入API,支持转发不同健康码互认请求协议,如下图:
在这里插入图片描述
路由中心支持自定义插件进行协议转换,主要是对存量健康码协议转换成标准,方便不同健康码协议互认。

路由中心模块组成

  • 应用管理: 维护申请应用的appkey、appsecret和对应的回调接口
  • 网关:根据appkey选择正确的回调接口
  • 第三方码适配:进行协议兼容处理,兼容强势方的二维码服务
    在这里插入图片描述

总结

  1. 共享用户身份信息涉及到法律隐私,路由中心应该支持两类二维码:a.app用户授权同意共享用户信息;b. app用户不愿意授权共享用户信息。
  2. 二维码内容有限,给业务的业务码可能过短不利于处理自己的业务,二维码设计需要灵活方便后续灵活扩展

以广州穗康码和龙江码为例互通架构大致如下:
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

竹二木

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值