【开发教程15】AI语音人脸识别(会议记录仪/人脸打卡机)-加解密及数据协议.docx

上传人:lao****ou 文档编号:82046 上传时间:2023-02-14 格式:DOCX 页数:13 大小:83.35KB
下载 相关 举报
【开发教程15】AI语音人脸识别(会议记录仪/人脸打卡机)-加解密及数据协议.docx_第1页
第1页 / 共13页
【开发教程15】AI语音人脸识别(会议记录仪/人脸打卡机)-加解密及数据协议.docx_第2页
第2页 / 共13页
【开发教程15】AI语音人脸识别(会议记录仪/人脸打卡机)-加解密及数据协议.docx_第3页
第3页 / 共13页
【开发教程15】AI语音人脸识别(会议记录仪/人脸打卡机)-加解密及数据协议.docx_第4页
第4页 / 共13页
【开发教程15】AI语音人脸识别(会议记录仪/人脸打卡机)-加解密及数据协议.docx_第5页
第5页 / 共13页
亲,该文档总共13页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《【开发教程15】AI语音人脸识别(会议记录仪/人脸打卡机)-加解密及数据协议.docx》由会员分享,可在线阅读,更多相关《【开发教程15】AI语音人脸识别(会议记录仪/人脸打卡机)-加解密及数据协议.docx(13页珍藏版)》请在第一文库网上搜索。

1、CC3200AI实验教程疯壳开发板系列W olverine-Team2018/07/1:目录官网地址:http:/www.fengke.club 淘宝店: 官方 QQ 群:193836402官网地址:http:/www.fengke.club购买链接:http:官方 QQ 群:193836402加解密及数据协议在AI人脸系统架构一节中,我们提到AI设备与服务器之间的通信协议及TEA加密。这一节主要来讲解一下TEA加密另附上AI设备通信协议。使用IAR打开AI_OCR工程,在工程中找到TEA.c,并打开其关联的头文件GeekTEA.h,可以见到如图1O1所示的在本工程中用到的与TEA加解密相关的

2、函数。/蔓取和在需要的长里unsigned int getEncryprSize(unsigned int size);/拼装代交包.为景始蛟据.sourcSn对为源始数据大小.Siget为拼装金果.JtJtEncryptSiz (sourcesize)void packEncrype(unsigned char* source unsigned int sourceSize,unsigned char* target);/批量加宏,bit加费内容.sxz2加密长M CcetEncrypzSize/, My卷绿 IBiq_ENDIANj7%力 小瑞为Qvoid encryptBatch(uns

3、igned char* bufr unsigned int size, unsigned char* key,int IS_BIG_ENDIAN);/批全解至.buf解至百套注区的堆址.s工帝长度 key和眼ZEWD1AJK说为,小确为0.返回济在,台长度.T耒示失败unsigned mt decryptBacch(unsigned char * bufr unsigned mt size,unsigned char* key, int IS_BIG_ENDIAN);图1.0.1 TEA加解密相关函数由于加密前需要传递加密缓冲区大小的形参,故在加密前需要先调用获取加密缓冲区的大小的函数getE

4、ncryptSize(),其函数内容如图1.0.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 size, unsigned char* key,int IS_BIG_ENDI7kN) unsigned int

5、 n = size, i;uint32_t k4r b2;transChar2lnt(key, 0, kz 4, IS_BIG_ENDIAN);for (i = 0; i n; i += 8) transChar2lnt(buf, i, bz 2, IS_BIG_ENDIAN);encrypt(br k, 0);transInt2Char(b, 2, bufz i, IS_BIG_ENDIAN); 一 一图1.0.3加密函数形参buf为存储加密后的数据缓冲区、size为getEncryptSize获取到大小、key为加密的秘钥即程序中的globle_Auth_key或者Skey、IS_BIG_

6、ENDIAN为大小端选择 序为大端、0为小端,CC3200为大端)。大端与小端的区别在于数据的存储在内存的高低位不同。大端模式,是指数据的高字节保存在内存的低地址中,而数据的低字节保存在内存的高地址中。小端模式,是指数据的高字节保存在内存的高地址中,而数据的低字节保存在内存的低地址中。解密部分和加密部分相似,是一个逆运算。如图104为decryptBatch。即解密函数。/批量解宓,size为解宓数据长度,8的整数倍unsigned int decryptBatch(unsigned char * deBufz unsigned int size.unsigned char* key, int

7、 IS_BIG_ENDIAN) unsigned char * buf = *deBuf;if (size % 8 != 0)return -1;unsigned int n = size, i;uint32_t k4z b2;transChar2lnt(keyz 0, k, 4, IS_BIG_ENDIAN);for (i = 0; i n; i += 8) transChar2lnt(buf, i, b, 2, IS_BIG_ENDIAN);decrypt(bz k, 0);transInt2Char(bz 2, buf, i, IS_BIG_ENDIAN);unsigned char o

8、ffset = buf0;if (offset 8)-1;else*deBufreturn+= offset;size - offset;图 1.0.4 decryptBatch 函数附:Al设备通信协议一、数据包种类响应数据报文分为两部分:报文头、报文体。报文头固定9个字节,头四个字节是报文类型,对应请求数据包的报文类型,接下来四个字节是报文体(不包括报文头)的长度。最后一位是响应状态码,其中Oxff固定表示秘钥过期,需要更新秘钥,其他以各自描述为准。请求数据报文分为两部分:报文头、报文体。报文头固定8字节,头四个字节是报文类型,后四个是报文体的长度。人脸注册发送图片报文类型报文头5个字节,

9、第一字节报文类型,后四个报文体长度。1s通用数据包1.1 激活数据包设备第一次跟服务器建立连接,建立连接后发送该数据包。数据包格式:4字节报文类型4字节293字节Authkey加密字段(88字节)16字节66字节0x01010001报文长度公钥PN私钥对PN签名响应结果:如果该设备已经激活、报文无法解析,鉴权失败,将断开连接。解析并鉴权成功后,响应的数据包格式如下:4字节报文类型4字节1字节4字节Authkey加密字段(40字节)4字节16字节16字节0x010100()1报文长度0x00随机数验证随机数DIN服务器唯一标识硬件idSkey加密秘钥1.2 激活确认包用于接收到激活数据包响应数据

10、后返回确认信息。数据包格式:4字节报文类型4字节4字节Skey加密字段(24字节)16字节4字节0x01010002报文长度随机数DIN验证随机数响应结果:如果解析包失败或鉴权失败,断开连接。解析并鉴权成功,之后数据交互使用skey加密。4字节报文类型4字节1字节0x01010002报文长度0x001.3 更新秘钥数据包用于秘钥过期时更新秘钥,也用于心跳,如果一段时间没有请求,发送该包。数据包格式:4字节报文类型4字节4字节旧Skey加密字段(24字节)16字节4字节0x01010003报文长度随机数DIN验证随机数响应结果:如果解析包失败或鉴权失败,断开连接。解析成功,响应的数据包格式有两种

11、:4字节报文类型4字1字节4字节,过期才有该部分旧Skey加密字段,过期才有该部分(24字节)4字节16字节0x01010003报文长度结果,0x00未过期,Oxff过期随机数验证随机数新skey加密秘钥1.4 更新秘钥确认包用于发送更新秘钥数据包接收到返回数据后进行确认的数据包。如果未收到响应或超时,可再次请求。如果请求成功,表示秘钥更新成功,旧的skey将彻底无法使用,之后与服务器通讯将使用新的 skey。数据包格式:4字节报文类型4字节4字节新的Skey加密字段(24字节)16字节4字节0x01010004报文长度随机数DIN验证随机数响应结果:如果解析包失败或鉴权失败,断开连接。解析成

12、功响应报文,之后的请求将使用新的skey。4字节报文类型4字节1字节0x01010004报文长度0x001.5 握手包已激活的设备在与服务器建立连接后,先发送该包鉴权。数据包格式:4字节报文类型4字节16字节4字节新的Skey加密字段(24字节)16字节4字节0x01010005报文长度DIN随机数DIN验证随机数响应结果:如果解析包失败或鉴权失败,断开连接。解析成功响应报文。如果响应结果skey过期,发送1.3、1.4的包4字节报文类型4字节1字节0x01010005报文长度结果,0x00 skey未过期,Oxff过期2、人脸识别业务数据包2.1人脸注册数据包人脸注册流程:先发送注册开始数据

13、包,收到确认后,依次发送各个不同的人脸数据包。最后发送注册结束包,收到确认后结束人脸注册。数据包格式:注册开始数据包4字节报文类型4字节4字节Skey加密字段16字节4字节不定长0x01020101报文长度随机数DIN验证随机数userinfo响应数据:如果解析包失败或鉴权失败,断开连接。解析成功,开始发送不同类型的人脸图片。4字节报文类型4K1字节4字节Skey加密字段4字节4字节0x01020101报文长度0x00表示成功Oxff表示秘钥过期,无后续字段随机数验证随机数uid脸部信息注册包人脸类型代码:0x00:正脸;0x01:左侧脸;0x02:右侧脸;0x03:闭眼;0x04:张嘴;0x05:微笑;0x06:眨眼。4字节不定长人脸类型图片长度图片信息响应数据:用于删除人脸信息。数据包格式:4字节报文类型4字节4字节32字节0x01020102报文长度随机数skey加密串加密字段格式:16字节4字节4字节DIN验证随机数uid响应数据:如果解析包失败或鉴权失败,断开连接。解析成功。4字节报文类型4字节1字节0x01020102报文长度0x00表示成功Oxff表示秘钥过期,无后续字段2.3 人脸识别用于已知一张脸,在人脸库中找到最相似的脸,user_top_num表示返回相似度最高的前多少个人脸。数据包格式:4字

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 应用文档 > 汇报材料

copyright@ 2008-2022 001doc.com网站版权所有   

经营许可证编号:宁ICP备2022001085号

本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有,必要时第一文库网拥有上传用户文档的转载和下载权。第一文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知第一文库网,我们立即给予删除!



客服