前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >录音笔传输文件自动校验

录音笔传输文件自动校验

作者头像
用户5521279
发布2020-08-17 15:31:41
2K0
发布2020-08-17 15:31:41
举报
文章被收录于专栏:搜狗测试

一、引言

校验文件完整的必要性:日常工作生活中,常会需要从网络上获取各种各样的数据,但下载的文件是否安全有待考量;即使安全,假设下载不完整,也会导致不可用;更糟糕的是有可能被别人修改过,加了木马、病毒、广告等,下载数据时校验其完整性是很有必要的。

小编(●—●)所在项目中,C1录音笔、C1Pro录音笔、C1Max录音笔录制产生的分别是avc、avo、opus格式的音频文件。笔端产生的文件,可以通过BLE和WiFi热点两种方式,传输到录音助手App端。项目测试需要校验笔端生成文件的完整性及传输到App的文件的完整性。

二、文件校验与校验方法

1、文件校验

文件校验,是指文件的 MD5、SHA1、CRC32 的值的检验。

MD5信息摘要算法(MD5 Message-Digest Algorithm),一种被广泛使用的密码散列函数,可以产生出一个128位(16字节)的散列值(hash value),用于确保信息传输完整一致。

SHA-1(Secure Hash Algorithm 1,安全散列算法1)是一种密码散列函数。SHA-1可以生成一个被称为消息摘要的160位(20字节)散列值,散列值通常的呈现形式为40个十六进制数。

CRC(Cyclic Redundancy Check)的全称是循环冗余校验,是数据通信领域中最常用的一种查错校验码。CRC32检错能力极强,开销小,易于用编码器及检测电路实现。

2、校验值

校验值是一组16进制数,不区分大小写,校验值本身只与文件内容有关,只要文件内容不改变校验值就不变;如复制/剪切/粘贴,修改文件创建时间/访问时间,修改文件读/写/执行属性等操作都不会导致校验值发生改变。

3、linux环境校验文件完整性

Linux下可以直接使用md5sum/sha1sum/sha256sum命令直接计算文件的对应校验值。

例如:

md5sum/works/Hello.mp3

sha1sum/works/Hello.mp3

sha256sum/works/Hello.mp3

4、Windows环境校验文件完整性

Windows下可以使用Windows自带的certutil命令来计算一个文件的校验值。

certutil支持的算法有:MD2 MD4 MD5 SHA1SHA256 SHA384 SHA512。

certutil的使用方法:执行“certutil-hashfile 文件名 校验值类型”,即可计算出对应文件的校验值。

例如:certutil -hashfile C:\Hello.mp3MD5

执行结果如图,该文件的MD5值是2ffcbdab360aa29d0ebc6aee94c0a625

三、笔端传输文件验证,问题解决思路

1、(C1 Max录音笔文件)利用opusinfo,获得每个opus文件的信息,进行笔端文件和APP端传输完毕文件的信息对比;

2、(C1、C1Pro、C1max)录音笔产生的音频文件,传输到App的音频文件,进行MD5校验;

MD5唯一性:不同的输入得到的不同的结果, 任何一个字节的改动都会导致MD5变化。

avc avo(自研数据类型)、opus文件传输验证

示例:笔端产生的opus音频文件,传输到App的音频文件,进行MD5校验,校验值一致,可确定传输后文件是完整的。

四、自动校验思路及实现

1、批量校验思路

(1). 依次获取app和pen目录下的音频文件路径(opus为例);

(2). 命令行获取到MD5值并提取,存放在对应的list中;

(3). 对文件校验MD5存放结果的列表listpen和listapp,求差集;

(4). 如果差集非空,证明MD5校验存在不一致,也即传输完毕的文件存在不一致的情况。

(5). 文件问题定位:APP端存储的文件是时间戳,可以转为普通时间计时,找到对应的笔端文件;

2、校验结果

求差集示例——MD5校验全部一致,校验通过

求差集示例—MD5校验,有不一致情况

注:参考文章

https://blog.csdn.net/xkwy100/article/details/80297968

https://blog.csdn.net/sunshineddMMZ/article/details/79917812

https://blog.csdn.net/u012611878/article/details/54000607

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-08-14,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 搜狗测试 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档