PHP sha1_file() -funktio

Esimerkki

Laske tekstitiedoston "test.txt" SHA-1 -hajutusarvo:

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

Yllä olevan koodin tulostus:

aaf4c61ddcc5e8a2dabede0f3b482cd9aea9434d

Määritelmä ja käyttö

sha1_file() -funktio laskee tiedoston SHA-1 -hajutusarvon.

sha1_file() -funktio käyttää Yhdysvaltain Secure Hash -algoritmia 1.

Selitys RFC 3174: Yhdysvaltain Secure Hash -algoritmi 1: SHA-1 tuottaa 160-bittisen ulostulon nimeltä viestidigesti. Viestidigesti voidaan syöttää algoritmiin, joka voi tuottaa tai vahvistaa viestisignaturia. Viestidigestin allekirjoittaminen, ei viestin allekirjoittaminen, parantaa prosessin tehokkuutta, koska viestidigestin koko on yleensä paljon pienempi kuin viestin koko. Numerollisen allekirjoituksen vahvistaja on käyttävä samaa hajutusalgoritmia kuin numerollisen allekirjoituksen luoja.

Onnistuessaan palauttaa laskettunsa SHA-1-skaalan, epäonnistuessaan palauttaa FALSE.

syntaksi

sha1_file(tiedosto,raw)
parametrit kuvaus
tiedosto Välttämätön. Määrittää laskettava tiedosto.
raw

Valinnainen. Boolsarvo, joka määrittää heksadesimaalisen tai binaarisen tulostusmuodon:

  • TRUE - Alkuperäinen 20-kirjaiminen binaarimuoto
  • FALSE - Oletus. 40-kirjaiminen heksadesimaaliluku

Tekninen yksityiskohta

Palautusarvo: Onnistuessaan palauttaa laskettunsa SHA-1-skaalan, epäonnistuessaan palauttaa FALSE.
PHP-versio: 4.3.0+
Päivityspäiväkirja:

PHP 5.0:ssaraw Parametrit ovat valinnaisia.

PHP 5.1 alkaen sha1_file() voidaan käyttää suorittamalla. Esimerkiksi: sha1_file("http://codew3c.com/..")

Lisää esimerkkejä

Esimerkki 1

Tallenna "test.txt"-tiedoston SHA-1-skaala:

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

Testaa, onko "test.txt" muuttunut (eli SHA-1 on muuttunut):

<?php
$sha1file = file_get_contents("sha1file.txt");
if (sha1_file("test.txt") == $sha1file)
  {
  echo "Tiedosto on kunnossa.";
  }
else
  {
  echo "Tiedosto on muuttunut.";
  }
?>

Yllä olevan koodin tulostus:

Tiedosto on kunnossa.