健康码互通方案优化

news2024/9/28 13:17:14

背景

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

健康码二维码优化

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

{“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. 二维码内容有限,给业务的业务码可能过短不利于处理自己的业务,二维码设计需要灵活方便后续灵活扩展

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/339589.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Redis实例绑定CPU物理核优化Redis性能

进入本次Redis性能调优之前,首先要知道CPU结构也会影响Redis的性能。接下来,具体了解一下!为什么CPU结构也会影响Redis的性能?主流的 CPU 架构一个 CPU 处理器中一般有多个物理核,每个物理核都可以运行应用程序。每个物…

docker-微服务篇

docker学习笔记1.docker简介1.1为什么会出现docker?1.2docker理念1.3虚拟机(virtual machine)1.4容器虚拟化技术1.5一次构建到处运行2.docker安装2.1前提条件2.2docker基本构成2.3docker安装步骤*2.4测试镜像3.docker常用命令3.1 启动docker3…

微信小程序 java ssm Springboot学生作业提交管理系统

系统具有良好的集成性,提供标准接口,以实现与其他相关系统的功能和数据集成。开放性好,便于系统的升级维护、以及与各种信息系统进行集成。功能定位充分考虑平台服务对象的需求。 一个微信小程序由.js、.json、.wxml、.wxss四种文件构成&…

zookeeper和kafka集群从0到1搭建(保姆教程)

一、环境准备 1、准备3台机器 主机名称 主机IP zookeeper版本 kafka版本 主机名称主机IPzookeeper版本kafka版本worker01192.168.179.128zookeeper-3.4.14.tar.gzkafka_2.12-2.2.1.tgzworker02192.168.179.129zookeeper-3.4.14.tar.gzkafka_2.12-2.2.1.tgzworker03192.168.1…

Arduino IDE 2.0.6中 ESP32开发环境搭建笔记

Arduino IDE 2.0.6中 ESP32开发环境搭建 Arduino IDE2.0 已上线一段时间,以后ESP32的学习转至新的IDE中 ,需对开发环境进行。 Arduino IDE2.0与1.0有很大差异。原来环境搭建方法已完全不同。下文主要记录环…

Docker进阶 - 13. Docker 容器监控之 CAdvisor+InfluxDB+Granfana (CIG) 简介

目录 1. CIG 产生原因 2. CIG 是什么 3. CIG 详细介绍 1. CIG 产生原因 使用docker stats命令可以看到当前宿主机上所有容器的CPU,内存以及网络流量等数据,简单的监控够用。但是docker stats统计结果只能是当前宿主机的全部容器,数据资料是实时的&am…

外包干了5年,寄了

前两天有读者想我资讯: 我是一名软件测试工程师,工作已经四年多快五年了。现在正在找工作,由于一直做的都是外包的项目。技术方面都不是很深入,现在找工作都是会问一些,测试框架,自动化测试,感…

微信公众号(二)每日推送详细教程(ChatGPT对话机器人)

微信公众号(二)每日推送详细教程(ChatGPT对话机器人)1.准备阶段1.1 基础性配置1.2 申请ChatGPT账号2. 配置阶段2.1 配置application.yml文件2.2 EnableChatGPT注解3. 部署效果图如下 1.准备阶段 1.1 基础性配置 首先下载源码…

Vue3+SpringBoot实现【登录】【毛玻璃】【渐变色】

首先创建Login.vue&#xff0c;编写界面和样式 这个是渐变色背景&#xff0c;登陆框背景为白色 <template><div class"wrapper"><div style"margin: 200px auto; background-color: #fff; width: 350px; height: 300px;padding: 20px;border-r…

hadoop高可用+mapreduce on yarn集群搭建

虚拟机安装 本次安装了四台虚拟机&#xff1a;hadoop001、hadoop002、hadoop003、hadoop004&#xff0c;安装过程略过 移除虚拟机自带jdk rpm -qa | grep -i java | xargs -n1 rpm -e --nodeps关闭防火墙 systemctl stop firewalld systemctl disable firewalld.service给普…

MyBatis-Plus基本CRUD

MyBatis-Plus基本CRUD三、基本CRUD1、BaseMapper2、插入3、删除a>通过id删除记录b>通过id批量删除记录c>通过map条件删除记录4、通过id修改一条记录5、查询a>根据id查询用户信息b>根据多个id查询多个用户信息c>通过map条件查询用户信息d>查询所有数据6、通…

微软ATP智汇十二道场 · 探索AI 驱动转型(北京专场)

为了推动微软与苏州人工智能产业创新中心共同构建企业级AI创新生态圈&#xff0c;微软ATP定于2023年3月3日在微软亚太研发集团总部&#xff08;北京&#xff09;举办“微软ATP智汇十二道场 探索AI 驱动转型”线下活动。 ▍微软探索AI商用&#xff0c;避免“创新陷阱”ChatGPT …

Lesson 6.6 多分类评估指标的 macro 和 weighted 过程 Lesson 6.7 GridSearchCV 的进阶使用方法

文章目录一、多分类评估指标的 macro 和 weighted 过程1. 多分类 F1-Score 评估指标2. 多分类 ROC-AUC 评估指标二、借助机器学习流构建全域参数搜索空间三、优化评估指标选取1. 高级评估指标的选用方法2. 同时输入多组评估指标四、优化后建模流程在正式讨论关于网格搜索的进阶…

Element UI框架学习篇(六)

Element UI框架学习篇(六) 1 删除数据 1.1 前台核心函数 1.1.1 elementUI中的消息提示框语法 //①其中type类型和el-button中的type类型是一致的,有info灰色,success绿色,danger红色,warning黄色,primary蓝色 //②message是你所要填写的提示信息 //③建议都用,因为比双引号…

字符串装换整数(atoi)-力扣8-java

一、题目描述请你来实现一个 myAtoi(string s) 函数&#xff0c;使其能将字符串转换成一个 32 位有符号整数&#xff08;类似 C/C 中的 atoi 函数&#xff09;。函数 myAtoi(string s) 的算法如下&#xff1a;读入字符串并丢弃无用的前导空格检查下一个字符&#xff08;假设还未…

合宙ESP32S3-CORE开发板|保姆级|Arduino IDE|windows11|esp32S3支持库|helloword例程:Arduino 环境搭建

Arduino主页网址&#xff1a; Software | Arduino 以windows11版本为例&#xff1a; Arduino IDE最新版本为2.0.3 左边的按钮是直接下载&#xff08;免捐赠&#xff09;&#xff1a; 下载安装完成后&#xff0c;更改软件默认语言&#xff1a; 默认的库是不支持ESP32的&#…

Allegro如何更改铜皮显示密度操作指导

Allegro如何更改铜皮显示密度操作指导 用Allegro做PCB设计的时候,铜皮正常显示模式如下图 铜皮的密度是基本填充满的,Allegro支持更改铜皮的显示密度 如下图 如何更改密度,具体操作如下 点击setup

Element UI框架学习篇(七)

Element UI框架学习篇(七) 1 新增员工 1.1 前台部分 1.1.1 在vue实例的data里面准备好需要的对象以及属性 addStatus:false,//判断是否弹出新增用户弹窗dailog,为true就显示depts:[],//部门信息mgrs:[],//上级领导信息jobs:[],//工作岗位信息//新增用户所需要的对象newEmp:…

Top-1错误率、Top-5错误率等常见的模型算法评估指标解析

Top-1 错误率&#xff1a;指预测输出的概率最高的类别与人工标注的类别相符的准确率&#xff0c;就是你预测的label取最后概率向量里面最大的那一个作为预测结果&#xff0c;如过你的预测结果中概率最大的那个分类正确&#xff0c;则预测正确&#xff0c;否则预测错误。比如预测…

Zabbix 构建监控告警平台(五)

Zabbix 自动发现Zabbix 自动注册1.Zabbix 自动发现 1.1前言 为了满足监控企业成千上万台服务器&#xff0c;因此我们需要使用Zabbix批量监控来实现。自动发现和自动注册。 1.2zabbix-server &#xff08;一&#xff09;1、创建自动发现规则 在“配置”->“自动发现”->“…