CN112685727A - 一种基于Protobuf的高效身份认证方法 - Google Patents

一种基于Protobuf的高效身份认证方法 Download PDF

Info

Publication number
CN112685727A
CN112685727A CN202110090990.2A CN202110090990A CN112685727A CN 112685727 A CN112685727 A CN 112685727A CN 202110090990 A CN202110090990 A CN 202110090990A CN 112685727 A CN112685727 A CN 112685727A
Authority
CN
China
Prior art keywords
str
token
character string
interface
payload
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202110090990.2A
Other languages
English (en)
Inventor
浦志超
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Readboy Education Technology Co Ltd
Original Assignee
Readboy Education Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Readboy Education Technology Co Ltd filed Critical Readboy Education Technology Co Ltd
Priority to CN202110090990.2A priority Critical patent/CN112685727A/zh
Publication of CN112685727A publication Critical patent/CN112685727A/zh
Pending legal-status Critical Current

Links

Images

Landscapes

  • Storage Device Security (AREA)

Abstract

本发明公开了一种基于Protobuf的高效身份认证方法,第一部分是准备阶段,生成序列化和反序列化接口;第二部分是token生成阶段,用protobuf协议代替json协议,也省去了base64编码,最终得到一个代表用户身份的token字符串,并返回给客户端。第三部分是token解析验证阶段,客户端在请求中携带token来表明其身份,此时将token拆分为3个字符串,并使用对应的反序列化接口,得到字符串原始的数据信息,并验证这些信息是否过期,或者是否被篡改,如果都没有则表明这个身份是合法的,否则就是一个不合法的身份。本发明使用protobuf协议替换json,生成的token的体积更小,因此传输会更快,数据的解析也会更快,从而使得身份认证阶段会更加高效快速,占用整个请求的总时间更少,不会造成用户体验下降。

Description

一种基于Protobuf的高效身份认证方法
技术领域
本发明涉及身份认证技术领域,具体涉及一种基于Protobuf的高效身份认证方法。
背景技术
Jwt(JSON Web Token)是目前一种使用非常广泛的身份认证解决方案。对比传统基于session+cookie的身份认证方案,jwt有以下几个优点:
1.无状态:认证所需的所有信息都已经包含在token里面,服务器无需存储记录任何信息,大大减轻了服务器压力,还具有很强的可扩展性。
2.适用移动端app:jwt不依赖于session,token只是普通的json字符串,移动端app很容易处理。
3.有效避免csrf攻击:token往往保存到local_storage中,csrf攻击无法利用认证token。
4.适用于单点登录:包含认证信息的token保存在客户端中,很容易实现单点登录。
5.适用于分布式:认证信息没有保存在服务器中,而是在客户端中,所以jwt也可以在分布式系统中使用。
Protocol buffers通常称为Protobuf,是Google开发的一种协议,允许对结构化数据进行序列化和反序列化。谷歌开发它的目的是提供一种更好的方式来进行系统间通信。因此,它更简单、更小、更快、更易于维护。
身份认证信息作为请求的通行证,所有的请求都会携带,jwt的传输和解析伴随了每一次请求,过大的jwt体积会造成网络传输时间增长,同时解析的时间也会增长,如果jwt的传输和处理时间过长,就会导致请求时间增加,用户体验下降。Jwt(JSON Web Token)数据结构化和数据解析都是基于json的,而json空间利用率和解析速度方面都较差,无法保证用户体验。
发明内容
针对现有技术的不足,本发明旨在提供一种基于Protobuf的高效身份认证方法。
为了实现上述目的,本发明采用如下技术方案:
一种基于Protobuf的高效身份认证方法,包括如下过程:
S1、准备阶段:
S1.1、创建.proto文件;
S1.2、使用protobuf语法,根据实际场景定义header和payload结构;
S1.3、使用protoc编译.proto文件,生成序列化和反序列化接口,其中包含header序列化接口、header反序列化接口、payload序列化接口和payload反序列化接口;
S2、生成token:
S2.1、调用header序列化接口序列化header,得到字符串header_str,以及调用payload序列化接口序列化payload,得到字符串payload_str;
S2.2、用连接符连接字符串header_str和字符串payload_str,得到字符串hp_str;
S2.4、通过header中声明的加密方式进行加盐secret组合加密字符串hp_str,得到字符串crypt_str;
S2.5、用连接符连接字符串hp_str和字符串crypt_str得到最终的token;
S3、token解析验证;
S3.1、输入token;
S3.2、根据token中的连接符,把token切分为三个字符串,分别为str_1、str_2、str_3;
S3.3、调用header反序列化接口反序列化str_1,得到原始的header,以及调用payload反序列化接口反序列化str_2,得到原始的payload;
S3.4、使用token中的连接符连接str_1和str_2得到字符串hp_str,通过原始的header中声明的加密方式,加盐secret组合加密字符串hp_str,得到字符串target_str;
S3.5、判断字符串target_str是否和字符串str_3相等:如果字符串target_str和字符串str_3相等,查看步骤S3.3得到的原始的payload中的有效期字段,判断token是否过期,如果是,则该token为无效token,否则该token为有效token;如果字符串target_str和字符串str_3不相等,则该token为无效token。
进一步地,上述方法中,所述连接符为“.”。
本发明的有益效果在于:本发明使用protobuf协议替换json,省去了base64编码,生成的token的体积更小,因此传输会更快,数据的解析也会更快,从而使得身份认证阶段会更加高效快速,占用整个请求的总时间更少,不会造成用户体验下降。
附图说明
图1为本发明实施例中的方法流程示意图。
具体实施方式
以下将结合附图对本发明作进一步的描述,需要说明的是,本实施例以本技术方案为前提,给出了详细的实施方式和具体的操作过程,但本发明的保护范围并不限于本实施例。
本实施例提供一种基于Protobuf的高效身份认证方法,如图1所示,包括如下过程:
S1、准备阶段:
S1.1、创建.proto文件;
S1.2、使用protobuf语法,根据实际场景定义header和payload结构;
S1.3、使用protoc编译.proto文件,生成序列化和反序列化接口,其中包含header序列化接口、header反序列化接口、payload序列化接口和payload反序列化接口。
S2、生成token:
S2.1、调用header序列化接口序列化header,得到字符串header_str,以及调用payload序列化接口序列化payload,得到字符串payload_str;
S2.2、用“.”连接字符串header_str和字符串payload_str,得到字符串hp_str;
S2.4、通过header中声明的加密方式进行加盐secret组合加密字符串hp_str,得到字符串crypt_str;
S2.5、用“.”连接字符串hp_str和字符串crypt_str得到最终的token。
生成的token返回至客户端。客户端在请求中携带token来表明其身份,此时需要进行token的解析验证。
S3、token解析验证;
S3.1、输入token;
S3.2、根据token中的“.”,把token切分为三个字符串,分别为str_1、str_2、str_3;
S3.3、调用header反序列化接口反序列化str_1,得到原始的header,以及调用payload反序列化接口反序列化str_2,得到原始的payload;
S3.4、使用“.”连接str_1和str_2得到字符串hp_str,通过原始的header中声明的加密方式,加盐secret组合加密字符串hp_str,得到字符串target_str;
S3.5、判断字符串target_str是否和字符串str_3相等:如果字符串target_str和字符串str_3相等,查看步骤S3.3得到的原始的payload中的有效期字段,判断token是否过期,如果是,则该token为无效token,否则该token为有效token;如果字符串target_str和字符串str_3不相等,则该token为无效token。
对于本领域的技术人员来说,可以根据以上的技术方案和构思,给出各种相应的改变和变形,而所有的这些改变和变形,都应该包括在本发明权利要求的保护范围之内。

Claims (2)

1.一种基于Protobuf的高效身份认证方法,其特征在于,包括如下过程:
S1、准备阶段:
S1.1、创建.proto文件;
S1.2、使用protobuf语法,根据实际场景定义header和payload结构;
S1.3、使用protoc编译.proto文件,生成序列化和反序列化接口,其中包含header序列化接口、header反序列化接口、payload序列化接口和payload反序列化接口;
S2、生成token:
S2.1、调用header序列化接口序列化header,得到字符串header_str,以及调用payload序列化接口序列化payload,得到字符串payload_str;
S2.2、用连接符连接字符串header_str和字符串payload_str,得到字符串hp_str;
S2.4、通过header中声明的加密方式进行加盐secret组合加密字符串hp_str,得到字符串crypt_str;
S2.5、用连接符连接字符串hp_str和字符串crypt_str得到最终的token;
S3、token解析验证;
S3.1、输入token;
S3.2、根据token中的连接符,把token切分为三个字符串,分别为str_1、str_2、str_3;
S3.3、调用header反序列化接口反序列化str_1,得到原始的header,以及调用payload反序列化接口反序列化str_2,得到原始的payload;
S3.4、使用token中的连接符连接str_1和str_2得到字符串hp_str,通过原始的header中声明的加密方式,加盐secret组合加密字符串hp_str,得到字符串target_str;
S3.5、判断字符串target_str是否和字符串str_3相等:如果字符串target_str和字符串str_3相等,查看步骤S3.3得到的原始的payload中的有效期字段,判断token是否过期,如果是,则该token为无效token,否则该token为有效token;如果字符串target_str和字符串str_3不相等,则该token为无效token。
2.根据权利要求1所述的方法,其特征在于,所述连接符为“.”。
CN202110090990.2A 2021-01-22 2021-01-22 一种基于Protobuf的高效身份认证方法 Pending CN112685727A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110090990.2A CN112685727A (zh) 2021-01-22 2021-01-22 一种基于Protobuf的高效身份认证方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110090990.2A CN112685727A (zh) 2021-01-22 2021-01-22 一种基于Protobuf的高效身份认证方法

Publications (1)

Publication Number Publication Date
CN112685727A true CN112685727A (zh) 2021-04-20

Family

ID=75458983

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110090990.2A Pending CN112685727A (zh) 2021-01-22 2021-01-22 一种基于Protobuf的高效身份认证方法

Country Status (1)

Country Link
CN (1) CN112685727A (zh)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107453872A (zh) * 2017-06-27 2017-12-08 北京溢思得瑞智能科技研究院有限公司 一种基于Mesos容器云平台的统一安全认证方法及系统
US20190273746A1 (en) * 2018-03-02 2019-09-05 Syntegrity Networks Inc. Microservice architecture for identity and access management
CN110943911A (zh) * 2019-12-19 2020-03-31 北京轻元科技有限公司 基于protobuf的物联网高效数据传输方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107453872A (zh) * 2017-06-27 2017-12-08 北京溢思得瑞智能科技研究院有限公司 一种基于Mesos容器云平台的统一安全认证方法及系统
US20190273746A1 (en) * 2018-03-02 2019-09-05 Syntegrity Networks Inc. Microservice architecture for identity and access management
CN110943911A (zh) * 2019-12-19 2020-03-31 北京轻元科技有限公司 基于protobuf的物联网高效数据传输方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
黄伟民等: "基于Token的物联网云平台系统身份认证机制研究", 《智库时代》 *

Similar Documents

Publication Publication Date Title
US10541818B2 (en) Decentralized biometric signing of digital contracts
US10372942B1 (en) Method and server for providing notary service for file and verifying file recorded by notary service
US8527758B2 (en) Systems and methods for facilitating user identity verification over a network
JP5650230B2 (ja) 低レイテンシーのピア・セッション確立
US8689339B2 (en) Method, system and apparatus for game data transmission
CN108664223A (zh) 一种分布式存储方法、装置、计算机设备及存储介质
WO2018145127A1 (en) Electronic identification verification methods and systems with storage of certification records to a side chain
CN106470190A (zh) 一种Web实时通信平台鉴权接入方法及装置
CN101662458A (zh) 一种认证方法
CN111949958B (zh) Oauth协议中的授权认证方法及装置
US11777942B2 (en) Transfer of trust between authentication devices
CN109639711A (zh) 一种基于私有链会话id的分布式cas认证方法
CN107634834A (zh) 一种基于多终端多场景的可信身份认证方法
CN111949959B (zh) Oauth协议中的授权认证方法及装置
CN112689014A (zh) 一种双全工通信方法、装置、计算机设备和存储介质
CN108737328A (zh) 一种浏览器用户代理识别方法、系统及装置
CN116170144B (zh) 智能电网匿名认证方法、电子设备及存储介质
CN116647345A (zh) 权限令牌的生成方法以及装置、存储介质、计算机设备
CN112685727A (zh) 一种基于Protobuf的高效身份认证方法
CN116527341A (zh) 一种客户端调用后端接口鉴权授权安全方法
CN114584975A (zh) 一种基于sdn的抗量子卫星网络接入认证方法
US20130346541A1 (en) Network Recording Service
CN114003884A (zh) 一种面向安全通信的生物认证密钥协商方法及系统
CN113542235B (zh) 一种基于令牌互信机制的安全互访方法
CN117579254B (zh) 一种数据传输的加密方法及系统、装置

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
RJ01 Rejection of invention patent application after publication
RJ01 Rejection of invention patent application after publication

Application publication date: 20210420