开发教程15AI语音人脸识别会议记录仪_人脸打卡机加解密及数据协议.docx
《开发教程15AI语音人脸识别会议记录仪_人脸打卡机加解密及数据协议.docx》由会员分享,可在线阅读,更多相关《开发教程15AI语音人脸识别会议记录仪_人脸打卡机加解密及数据协议.docx(12页珍藏版)》请在第一文库网上搜索。
1、CC3200AI实验教程疯壳开发板系列WO1verme-Team2018/07/18目录官网地址:http:WWW.fetRke.c1ub购买链接:http:ShOPII官方QQ群:193836402加解密及数据协议在AI人脸系统架构一节中,我们提到A1设备与服务器之间的通信协议及TEA加密。这一节主要来讲解一下TEA加密另附上AI设备通信协议。使用IAR打开A1C)CR工程,在工程中找到TEAc并打开其关联的头文件GeekTEAh可以见到如图1.0.1所示的在本工程中用到的与TEA加解密相关的函数。/次uf忿#的长JrunsignedintgetEncryptSIze(unsignedInt
2、size);/拼装出书包.soUtS为源妁数提,SOUE8S工Xe为谆始经Ig大小.UEgZ为拼装结果.31getEncryptSze(sourceSxe)4?voidpackEncrype(unsignedchar*source,unsignedintSourceSizefunsignedchar*target);批量加密.出击内杳.aS长JrCetocryptSxeRf9J1e秘铝上B1色aDIWC1小磷为QvoidencryptBatch(unsignedcharbuf,unsignedintsizerUnSignedcharkeyrintISBIGEHD1AH”/抵量解芒bu婚书而疥斗
3、的地址.iize.*frJJ?.key6fS.a_B1ZEraMCtM1.小戏K.退回1书册口长区.-1出赤*国为unsignedintdecryptBatch(unsignedcharabufrunsignedintsizerunsignedchar*key,intISeBIGeENDIAHJ;图1.0.1TEA加解密相关函数由于加密前需要传递加密缓冲区大小的形参,故在加密前需要先调用获取加密缓冲区的大小的函数getEncryptSize(),其函数内容如图1.0.2所示。unsignedintgetEncryptSize(unsignedintsize)returnsize+(8-size
4、%8);图1.0.2getEncryptSize。函数接下来就是对加密数据进行拼装以及对数据进行加密,如图10.3所示为批量加密函数。/批量加宓,SiZe为加密数据长度,8的控数倍voidencryptBatch(unsignedchar*bufrunsignedintsize,unsignedchar*key,intIS_BIG_ENDIAN)unsignedintn=size,i;uint32_tk4rb2;transChar21nt(key,0,k,4rIS_BIG_ENDIAN);for(i=0;in;i+=8)transChar2Int(buf,i,b,2,IS_BIG_ENDIAN
5、);encrypt(b,kr0);transInt2Char(b,2,buf,i,IS_BIG_ENDIAN);)图1.0.3加密函数形参buf为存储加密后的数据缓冲区、size为getEncryptSize获取到大小、key为加密的秘钥即程序中的g1ob1e_Auth_key或者Skey、IS_BIG_ENDIAN为大小端选择(1为大端、0为小端,CC3200为大端)。大端与小端的区别在于数据的存储在内存的高低位不同。大端模式,是指数据的高字节保存在内存的低地址中,而数据的低字节保存在内存的高地址中。小端模式,是指数据的高字节保存在内存的高地址中,而数据的低字节保存在内存的低地址中。解密部分
6、和加密部分相似,是一个逆运算。如图1.0.4为decryptBatch()即解密函数。/批量解密,SiZe为解密数据长度,8的整数倍unsignedintdecryptBatch(unsignedchar*deBufrunsignedintsize,unsignedchar*key,intIS_BIG_ENDIAN)unsignedchar*buf=*deBuf;if(size%8!=O)return-1;unsignedintn=size,i;uint32_tk4,b2;transChar21nt(key,O,k,4,IS_BIG_ENDIAN);for(i0;in;i+=8)transCh
7、ar21nt(buf,i,b,2,IS_BIG_ENDIAN);decrypt(b,kr0);transInt2Char(bz2,buf,izIS_BIG_ENDIAN);unsignedcharoffset=buf0;if(offset8)return-1;e1se*deBuf+=offset;returnsize-offset;图1.0.4decryptBatch函数附:A1设备通信协议一、数据包种类响应数据报文分为两部分:报文头、报文体。报文头固定9个字节,头四个字节是报文类型,对应请求数据包的报文类型,接下来四个字节是报文体(不包括报文头)的长度。最后一位是响应状态码,其中Oxff固定
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 开发 教程 15 AI 语音 识别 会议 记录仪 打卡机 解密 数据 协议