寻找在 Linux 发行版上随时可用的命令或一组命令,这些命令可以让我创建一个脚本来为文件生成校验和。
这个校验和是由我无法控制的构建系统生成的,方法是对文件中的每个字节求和,然后将该数字截断为 4 个字节。
我知道如何使用 node.js、perl、python、C/C++ 等工具执行此操作,但我需要能够在我无法修改的远程运行的基本 Linux 发行版上执行此操作(它在 PLC 上)。
有什么想法吗?我已经搜索了一段时间,但还没有找到任何看起来简单的东西。
最佳答案
使用许多原始 shell 命令逐字节求和并将该数字截断为 4 字节的解决方案。
#! /usr/bin/env bash
declare -a bytes
bytes=(`xxd -p -c 1 INPUT_FILE | tr '\n' ' '`)
total=0;
for(( i=0; i<${#bytes[@]}; i++));
do
total=$(($total + 0x${bytes[i]}))
if [ $total > 4294967295 ]; then
total=$(($total & 4294967295))
fi
done
echo "Checksum: " $total
关于linux - 从命令行计算文件校验和,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30738442/