Linux脚本检测MP4文件完整性

mp4文件录制完成后会在文件尾部写一些数据信息,所以检测MP4文件完整性只需要检测尾部特定的信息;

完整文件

不完整文件

 检测依据:文件最后10字节数据是否是H264/90000;

检测脚本

#!/bin/sh

MD5_KEY="29c5e771148be6cedea557783a7347ff"
vfile=$1

fmsize=`stat -c %s $vfile`;
fmsize=$((fmsize-10));
dd if=$vfile of=/tmp/aamp4.dat skip=$fmsize count=10 bs=1 2>/dev/null;
md5_val=`md5sum /tmp/aamp4.dat | awk '{print $1}'`;
echo "md5 ret=$md5_val"

[ "$MD5_KEY" == "$md5_val" ] && {
	echo "md5 check ok"
} || {
	echo "md5 check no"
}

rm -rf /tmp/aamp4.dat

对MP4文件格式不熟悉,学习后继续补充。。。

 

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
系统文件完整性检测是什么?如何使用shell脚本实现该功能? Shell脚本是一种编程语言,可以在Linux系统中使用。通过编写Shell脚本,可以实现各种自动化任务,包括文件操作、系统管理等。其中,文件完整性检测是一种常见的任务,可以通过Shell脚本来实现。 文件完整性检测是指检查文件是否被篡改或替换。在Linux系统中,可以使用MD5或SHA1等算法来计算文件的哈希值,通过比较哈希值来判断文件是否被修改。具体实现可以使用Shell脚本编写一个函数,该函数接受一个文件路径作为参数,计算文件的哈希值,并与预先计算好的哈希值进行比较,如果不一致则说明文件被修改。 下面是一个示例Shell脚本,用于检测指定目录下所有文件完整性: ``` #!/bin/bash # 计算文件的哈希值 function calc_hash() { local file="$1" local hash=$(md5sum "$file" | awk '{print $1}') echo "$hash" } # 检测文件完整性 function check_integrity() { local dir="$1" local log_file="$2" local result=0 for file in $(find "$dir" -type f); do local hash=$(calc_hash "$file") local expected_hash=$(grep "$file" "$log_file" | awk '{print $2}') if [ "$hash" != "$expected_hash" ]; then echo "File $file has been modified!" >&2 result=1 fi done return $result } # 记录文件哈希值 function record_hash() { local dir="$1" local log_file="$2" for file in $(find "$dir" -type f); do local hash=$(calc_hash "$file") echo "$file $hash" >> "$log_file" done } # 主函数 function main() { local dir="$1" local log_file="$2" if [ ! -f "$log_file" ]; then record_hash "$dir" "$log_file" else check_integrity "$dir" "$log_file" record_hash "$dir" "$log_file" fi } # 调用主函数 main "/path/to/directory" "/path/to/log/file" ``` 该脚本首先定义了三个函数,分别用于计算文件的哈希值、检测文件完整性和记录文件哈希值。然后在主函数中,首先检查是否存在记录文件,如果不存在则记录所有文件的哈希值,否则检测文件完整性并更新记录文件。最后调用主函数即可实现文件完整性检测

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值