收藏 分销(赏)

人脸打卡机)-加解密及数据协议.docx

上传人:二*** 文档编号:4515906 上传时间:2024-09-26 格式:DOCX 页数:10 大小:119.37KB 下载积分:5 金币
下载 相关 举报
人脸打卡机)-加解密及数据协议.docx_第1页
第1页 / 共10页
本文档共10页,全文阅读请下载到手机保存,查看更方便
资源描述
CC3200AI 实验教程 疯壳•开发板系列W olverine-Team 2018/07/18 如果解析包失败或鉴权失败,断开连接。 解析成功,识别包格式: 4字节 报文类型 4字节 1字节 4字 节 Skey加密字段 4字 4字 -Hj- 不定长 0x010201 03 报文长 度 0x00表示成功Oxff 表示秘钥过期,无 后续字段 随机 数 验证 随机 数 结果 数量 循环体 单次循环体格式,人脸类型代码:0x00:正脸;0x01:左侧脸;0x02:右侧脸;0x03:闭眼;0x04:张嘴; 0x05:微笑;0x06:眨眼。 4字节 4字节 1字节 8字节 不定长 循环体长度 uid 人脸类型 double类型,相似程度 userinfo 2.4人脸认证 用于比拟人脸与指定用户id之间的相似程度。 数据包格式: 4字节 报文类型 4字节 4字节 不定长 0x01020104 报文长度 随机数 skey加密串 (暂不加密) 加密字段格式,人脸类型代码:0x00:正脸;0x01:左侧脸;0x02:右侧脸;0x03:闭眼;0x04:张 嘴;0x05:微笑;0x06:眨眼。 16字节 4字节 4字节 1字节 不定长 DIN 验证随机数 uid 人脸类型 Img 响应数据: 如果解析包失败或鉴权失败,断开连接。 解析成功,返回数据包格式: 4字节 报文类型 4字节 1字节 4字 节 Skey加密(16字 节) 4字节 8字节 0x01020104 报文长 度 0x00表示成功Oxff 表示秘钥过期,无后 续字段 随机 数 验证 随机 数 double 类 型,相似程 度 官网地址: :〃淘宝店: :〃shopll5904315Aaobao 官方 QQ 群:193836402 官网地址: :〃淘宝店: :〃shopll5904315Aaobao 官方 QQ 群:193836402 目录官网地址: :〃淘宝店: :〃shopll5904315Aaobao 官方 QQ 群:193836402 官网地址: :〃购买链接:httD://shopl1 官方 QQ 群:193836402 宜网地址: :〃 fengkedub淘宝店: :〃shopll 官方 QQ 群:193836402 加解密及数据协议 在《AI人脸系统架构》一节中,我们提到AI设备与服务器之间的通信协议及TEA加密。这一节主要来讲解一下TEA加密另附上《AI设备通信协议》。 使用IAR翻开AI_OCR工程,在工程中找到TEA.c,并翻开其关联的头文件GeekTEA.h,可以见到如下图的在本工程中用到的与TEA加解密相关的函数。 //获取加宙but需票的长度 unsigned int getEncryptSize(unsigned int size);//拼装加密包,source为原始数揖,souHceSiie为原始数据大小.tatqet为拼装结果.^^^getEncryptSize (sourceSize) void packEncrype(unsigned char* source, unsigned int sourceSize, unsigned char* target); // 批量加宙.but加至内容,size加密长度 CgetEncryptSize^^} , key前期 IS_BIG_ENDIANX^L^1,小编为0 void encryptBatch(unsigned char* bufr unsigned int size, unsigned char* key, int IS_BIG_ENDIAN);//报:量解密.密区叁音针的地址.size.解至长度.key秘铝,IS_BIG_ENDIAN^7^1,小编为0,返回解市后gf长度.T表示簿主失散: unsigned int decryptBatch(unsigned char ** buf, unsigned int size, unsigned char* key, int IS_BIG_ENDIAN);图1.0.1 TEA加解密相关函数 由于加密前需要传递加密缓冲区大小的形参,故在加密前需要先调用获取加密缓冲区的大小的函数getEncryptSize。,其函数内容如图L0.2所示。 unsigned int getEncryptSize(unsigned int size) { return size + (8 - size % 8);} 图 1.0.2 getEncryptSize。函数 接下来就是对加密数据进行拼装以及对数据进行加密,如图103所示为批量加密函数。 //批量加密,size为加宙数据长度,8的整数倍void encryptBatch(unsigned char* bufz unsigned int sizez unsigned char* keyz int IS_BIG_ENDIAN) { unsigned int n = size, i; uint32_t k[4], b[2];transChar2lnt(keyz 0, k, 4, IS_BIG_ENDIAN); for (i = 0; i < n; i += 8) {transChar2lnt(bufz i, bz 2, IS_BIG_ENDIAN); encrypt(bz kz 0);trans工nt2char(b, 2, bufz i, IS_BIG_ENDIAN); } 一 一 }图加密函数 形参buf为存储加密后的数据缓冲区、size为getEncryptSize获取到大小、key为加密的秘钥即程序中的globle_Auth_key或者Skey、IS_BIG_ENDIAN为大小端选择(1为大端、0为小端,CC3200为大 端)。 大端与小端的区别在于数据的存储在内存的高低位不同。 大端模式,是指数据的高字节保存在内存的低地址中,而数据的低字节保存在内存的高地址中。 小端模式,是指数据的高字节保存在内存的高地址中,而数据的低字节保存在内存的低地址中。 解密局部和加密局部相似,是一个逆运算。如图L0.4为decryptBatch。即解密函数。 官网地址: :〃淘宝店: :〃shopll5904315Aaobao 官方 QQ 群:193836402//批量解专,size为解专数据长度,8的整数倍 unsigned int decryptBatch(unsigned char ** deBufz unsigned int size, unsigned char* keyz int IS_BIG_ENDIAN) { unsigned char * buf = *deBuf; if (size % 8 != 0)return -1; unsigned int n = size, i;uint32_t k[4], b[2]; transChar2lnt(keyf 0, k, 4, IS_BIG_ENDIAN);for (i = 0; i < n; i += 8) { transChar2Int(bufz i, b, 2, IS_BIG_ENDIAN);decrypt(bz k, 0); transInt2Char(b, 2, bufz iz IS_BIG_ENDIAN);} 一 一 unsigned char offset = buf[0];if (offset < 1 || offset > 8) return -1;else { *deBuf += offset;return size - offset; }) 图 1.0.4 decryptBatch 函数 官网地址: :〃 淘宝店: :〃官方 QQ 群:193836402附:Al设备通信协议 一、数据包种类 响应数据报文分为两局部:报文头、报文体。报文头固定9个字节,头四个字节是报文类型,对 应请求数据包的报文类型,接下来四个字节是报文体(不包括报文头)的长度。最后一位是响应状态 码,其中Oxff固定表示秘钥过期,需要更新秘钥,其他以各自描述为准。 请求数据报文分为两局部:报文头、报文体。报文头固定8字节,头四个字节是报文类型,后四 个是报文体的长度。 人脸注册发送图片报文类型报文头5个字节,第一字节报文类型,后四个报文体长度。 1、通用数据包激活数据包 设备第一次跟服务器建立连接,建立连接后发送该数据包。 数据包格式: 4字节 报文类型 4字节 293字节 Authkey加密字段(88字节) 16字节 66字节 0x01010001 报文长度 公钥 PN 私钥对PN签名 响应结果: 如果该设备已经激活、报文无法解析、鉴权失败,将断开连接。 解析并鉴权成功后,响应的数据包格式如下: 4字节 报文类型 4字节 1字节 4字节 Authkey加密字段(40字节) 4字节 16字节 16字节 0x010100 01 报文长 度 0x00 随机 数 验证随 机数 DIN服务器唯 一标识硬件id Skey加密秘 钥 激活确认包 用于接收到激活数据包响应数据后返回确认信息。 数据包格式: 4字节 报文类型 4字节 4字节 Skey加密字段(24字节) 16字节 4字节 0x01010002 报文长度 随机数 DIN 验证随机数 响应结果: 如果解析包失败或鉴权失败,断开连接。 解析并鉴权成功,之后数据交互使用skey加密。 4字节报文类型 4字节 1字节 官网地址: :〃淘宝店: :〃shopll5904315Aaobao 官方 QQ 群:1938364020x01010002 0x01010002 报文长度 0x00 更新秘钥数据包 用于秘钥过期时更新秘钥,也用于心跳,如果一段时间没有请求,发送该包。 数据包格式: 4字节 报文类型 4字节 4字节 旧Skey加密字段(24字节) 16字节 4字节 0x0101000 3 报文长度 随机数 DIN 验证随机数 响应结果: 如果解析包失败或鉴权失败,断开连接。 解析成功,响应的数据包格式有两种: 4字节 报文类型 4字 节 1字节 4字节, 过期才有 该局部 旧Skey加密字段,过期才有 该局部(24字节) 4字节 16字节 0x010100 03 报文 长度 结果,0x00 未过期,Oxff 过期 随机数 验证随机数 新skey加密 秘钥 更新秘钥确认包 用于发送更新秘钥数据包接收到返回数据后进行确认的数据包。如果未收到响应或超时,可再次 请求。如果请求成功,表示秘钥更新成功,旧的skey将彻底无法使用,之后与服务器通讯将使用新 的 skeyo 数据包格式: 4字节 报文类型 4字节 4字节 新的Skey加密字段(24字节) 16字节 4字节 0x01010004 报文长度 随机数 DIN 验证随机数 响应结果: 如果解析包失败或鉴权失败,断开连接。 解析成功响应报文,之后的请求将使用新的skey。 4字节报文类型 4字节 1字节 0x01010004 报文长度 0x00 握手包 已激活的设备在与服务器建立连接后,先发送该包鉴权。 官网地址: :〃淘宝店: :〃 官方 QQ 群:1938364024 数据包格式: 4字节 报文类型 4字节 16字节 4字节 新的Skey加密字段(24字节) 16字节 4字节 0x0101000 5 报文长度 DIN 随机数 DIN 验证随机 数 响应结果: 如果解析包失败或鉴权失败,断开连接。 解析成功响应报文。如果响应结果skey过期,发送1.3、L4的包 4字节 报文类型 4字节 1字节 0x01010005 报文长度 结果,0x00 skey未过期,Oxff过期 2、人脸识别业务数据包2.1人脸注册数据包 人脸注册流程:先发送注册开始数据包,收到确认后,依次发送各个不同的人脸数据包。最后发 送注册结束包,收到确认后结束人脸注册。 数据包格式: ①注册开始数据包 4字节 报文类型 4字节 4字节 Skey加密字段 16字节 4字节 不定长 0x010201 01 报文长度 随机数 DIN 验证随机数 userinfo 响应数据: 如果解析包失败或鉴权失败,断开连接。 解析成功,开始发送不同类型的人脸图片。 4字节 报文类型 4字节 1字节 4字节 Skey加密字段 4字节 4字节 0x01020101 报文长 度 0x00表示成功Oxff表 示秘钥过期,无后续 字段 随机 数 验证随机 数 uid ②脸部信息注册包 人脸类型代码:0x00:正脸;0x01:左侧脸;0x02:右侧脸;0x03:闭眼;0x04:张嘴;0x05:微笑;0x06: 眨眼。 1字节 4字节 不定长 人脸类型 图片长度 图片信息 响应数据: 官网地址: :〃淘宝店: :〃shopll5904315Aaobao 官方 QQ 群:193836402 用于删除人脸信息。 数据包格式: 4字节报文类型 4字节 4字节 32字节 0x01020102 报文长度 随机数 skey加密串 加密字段格式: 16字节 4字节 4字节 DIN 验证随机数 uid 响应数据: 如果解析包失败或鉴权失败,断开连接。 解析成功。 4字节报文类型 4字节 1字节 0x01020102 报文长度 0x00表示成功Oxff表示 秘钥过期,无后续字段 2.3人脸识别 用于一张脸,在人脸库中找到最相似的脸,user_top_num表示返回相似度最高的前多少 个人脸。 数据包格式: 4字节 报文类型 4字节 4字节 不定长 0x01020103 报文长度 随机数 skey加密串 (暂不加密) 加密字段格式: 16字节 4字节 1字节 不定长 DIN 验证随机数 user_top_num Img 响应数据: 官网地址: :〃淘宝店: :〃shopll5904315Aaobao 官方 QQ 群:193836402
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 包罗万象 > 大杂烩

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服