Compreendendo a saída do comando 'cksum'

3

Quando eu executo o comando cksum , recebo o seguinte como saída

2836376023   36 myfile.txt

Eu entendo que 36 é o tamanho do arquivo seguido pelo nome do arquivo

Mas eu gostaria de saber a fórmula de como o número 2836376023 é gerado. Eu sei que de um arquivo para outro o número é completamente diferente.

    
por Joe Le Rip 28.08.2016 / 09:28

1 resposta

5

O número 2836376023 é a soma de verificação de CRC do arquivo

CRC = verificação de redundância cíclica

Em resumo, uma operação matemática ( divisão polinomial ) é executada no conteúdo de um arquivo e o restante é usado para gerar a soma de verificação. Se o arquivo foi alterado desde a última vez em que o cálculo foi feito, a soma de verificação seria diferente, portanto, ele pode ser usado para garantir que os arquivos não tenham sido danificados em trânsito. O método só é útil para verificar se há corrupção acidental de dados; não é seguro contra ataques deliberados, pois é bastante trivial modificar um arquivo de forma que a soma de verificação do CRC permaneça a mesma.

Para expandir isso, o programa que faz a soma de verificação (como cksum ) define um polinômio gerador para ser o denominador na divisão polinomial. O conteúdo do arquivo a ser verificado é o numerador.

Exemplos detalhados da computação podem ser encontrados na Wikipedia:
Cálculo de verificações de redundância cíclica

Se você quiser saber os detalhes exatos da implementação no caso de cksum , você pode ler o código-fonte on-line em Savannah

Ou baixe-o em permitindo downloads de fontes e correndo (em sua casa)

sudo apt update
mkdir coreutils-src && cd coreutils-src
apt source coreutils

Em seguida, cd no novo diretório. cksum.c está no subdiretório src .

    
por Zanna 28.08.2016 / 09:41