Função sha1_file() do PHP

Exemplo

Calcular o hash SHA-1 do arquivo de texto "test.txt":

<?php
$filename = "test.txt";
$sha1file = sha1_file($filename);
echo $sha1file;
?>

Saída do código acima:

aaf4c61ddcc5e8a2dabede0f3b482cd9aea9434d

Definição e uso

A função sha1_file() calcula o hash SHA-1 do arquivo.

A função sha1_file() usa o algoritmo de hash de segurança dos EUA SHA-1.

Explicação proveniente do RFC 3174 - O algoritmo de hash de segurança dos EUA SHA-1 gera uma saída de 160 bits chamada resumo do mensagem. O resumo da mensagem pode ser introduzido em um algoritmo de assinatura de mensagem que pode gerar ou verificar a assinatura da mensagem. Assinar o resumo da mensagem em vez de assinar a mensagem pode melhorar a eficiência do processo, pois o tamanho do resumo da mensagem é geralmente muito menor do que o tamanho da mensagem. O verificador da assinatura digital deve usar o mesmo algoritmo de hash que o criador da assinatura digital.

Retorna o hash SHA-1 calculado com sucesso ou FALSE se falhar.

Sintaxe

sha1_file(file,raw)
Parâmetros Descrição
file Obrigatório. Define o arquivo a ser calculado.
raw

Opcional. Booleano que determina o formato de saída hexadecimal ou binário:

  • TRUE - Formato binário original de 20 caracteres
  • FALSE - Padrão. Número hexadecimal de 40 caracteres

Detalhes Técnicos

Retorno: Retorna o hash SHA-1 calculado com sucesso ou FALSE se falhar.
Versão PHP: 4.3.0+
Log de Atualizações:

No PHP 5.0:raw Parâmetros tornaram-se opcionais.

A partir do PHP 5.1, sha1_file() pode ser usado através de encapsulamento. Por exemplo: sha1_file("http://codew3c.com/..")

Mais Exemplos

Exemplo 1

Armazenar o hash SHA-1 do arquivo "test.txt":

<?php
$sha1file = sha1_file("test.txt");
file_put_contents("sha1file.txt",$sha1file);
?>

Testar se "test.txt" foi alterado (isto é, se o SHA-1 foi alterado):

<?php
$sha1file = file_get_contents("sha1file.txt");
if (sha1_file("test.txt") == $sha1file)
  {
  echo "O arquivo está ok.";
  }
else
  {
  echo "O arquivo foi alterado.";
  }
?>

Saída do código acima:

O arquivo está ok.