信息发布→ 登录 注册 退出

录音笔传输文件自动校验

发布时间:2025-09-17

点击量:

一、引言

校验文件完整性的重要性:在日常工作和生活中,我们常常需要从网络上获取各种数据,但这些下载的文件是否安全值得商榷;即使是安全的,如果下载不完整,也会导致文件不可用;更糟糕的是,文件可能被篡改,加入了木马、病毒或广告等。因此,下载数据时校验其完整性是非常必要的。

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

二、文件校验与校验方法

1、文件校验

文件校验是指对文件的MD5、SHA1和CRC32值进行检查。

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

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

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

2、校验值

校验值是一组十六进制数,不区分大小写,仅与文件内容相关。只要文件内容不变,校验值就不会改变。复制/剪切/粘贴、修改文件创建时间/访问时间、修改文件读/写/执行属性等操作都不会影响校验值。

3、在Linux环境下校验文件完整性

在Linux下,可以直接使用md5sum、sha1sum和sha256sum命令来计算文件的校验值。

例如:

md5sum /works/Hello.mp3

sha1sum /works/Hello.mp3

sha256sum /works/Hello.mp3

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

在Windows下,可以使用系统自带的certutil命令来计算文件的校验值。

certutil支持的算法包括:MD2、MD4、MD5、SHA1、SHA256、SHA384和SHA512。

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

例如:certutil -hashfile C:\Hello.mp3 MD5

执行结果如图所示,该文件的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和笔端目录下的音频文件路径(以opus为例);

(2). 通过命令行获取并提取MD5值,存储在对应的列表中;

(3). 对文件校验MD5值存储结果的列表listpen和listapp进行差集运算;

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

(5). 文件问题定位:App端存储的文件使用时间戳,可以转换为普通时间计时,找到对应的笔端文件。

2、校验结果

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

求差集示例—MD5校验存在不一致情况

注:参考文章

https://www./link/dd823d6e1e3a88daf0873b36aa204369

https://www./link/b3ca9f305782d831cfe65fdf7b980b51

https://www./link/18dc2aa306574480d292c7b0210f7545

标签:# 值类型  # 可以直接  # 数据通信  # 可以通过  # 两种  # 是指  # 也会  # 的是  # 录音笔  # 文件传输  # 是一种  # https  # 算法  # windows  # 循环  # 数据类型  # red  # 热点  # win  # ai  # wifi  # 字节  # app  # 编码  # go  # linux  
在线客服
服务热线

服务热线

4008888355

微信咨询
二维码
返回顶部
×二维码

截屏,微信识别二维码

打开微信

微信号已复制,请打开微信添加咨询详情!