Heim  >  Artikel  >  Backend-Entwicklung  >  Kurze Beschreibung der PHP-Hash-Operation für Dateien

Kurze Beschreibung der PHP-Hash-Operation für Dateien

墨辰丷
墨辰丷Original
2018-06-11 17:00:312089Durchsuche

In diesem Artikel wird hauptsächlich vorgestellt, wie PHP Hash-Operationen für Dateien durchführt. Dies ist von großem praktischem Wert. Freunde in Not können sich darauf beziehen.

Das Beispiel dieses Artikels erzählt die Geschichte wie PHP Hash-Operationen für Dateien durchführt. Methode zur Durchführung von Hash-Operationen. Die Details sind wie folgt:

Dieser Code ist sehr nützlich. Wenn Sie eine Datei herunterladen, stellt die Website ein Hash-Ergebnis bereit. Sie können eine Hash-Operation für die heruntergeladene Datei durchführen, um zu überprüfen, ob die heruntergeladene Datei korrekt ist .

<html>
<head>
  <title>Hash (Check) Files</title>
  <style type=&#39;text/css&#39;>
   #ok{color:green;}
   #nono{color:red;}
  </style>
</head>
<body>
 <?php
   if(!empty($_FILES)){
   if ($_FILES["file"]["error"] > 0){
    switch($_FILES["file"]["error"]){
     case 1:
     echo "<b id=&#39;nono&#39;>Error: The uploaded file exceeds the upload_max_filesize directive in php.ini</b><br>";
     break;
     case 2:
     echo "<b id=&#39;nono&#39;>Error: The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form.</b><br>";
     break;
     case 3:
     echo "<b id=&#39;nono&#39;>Error: The uploaded file was only partially uploaded.</b><br>";
     break;
     case 4:
     echo "<b id=&#39;nono&#39;>Error: No file was uploaded.</b><br>";
     break;
     case 6:
     echo "<b id=&#39;nono&#39;>Error: Missing a temporary folder.</b><br>";
     break;
     case 7:
     echo "<b id=&#39;nono&#39;>Error: Failed to write file to disk.</b><br>";
     break;
     case 8:
     echo "<b id=&#39;nono&#39;>Error: A PHP extension stopped the file upload.</b><br>";
     break;
     default:
     echo "<b id=&#39;nono&#39;>Unknown error occured.</b><br>";
    }
   } else {
    echo &#39;Upload: &#39; . $_FILES[&#39;file&#39;][&#39;name&#39;] . &#39;<br>&#39;;
    echo &#39;Type: &#39; . $_FILES[&#39;file&#39;][&#39;type&#39;] . &#39;<br>&#39;;
    echo &#39;Size: &#39; . (round($_FILES[&#39;file&#39;][&#39;size&#39;] / 1024, 2)) . &#39; Kb<br><br>&#39;;
    if(array_search($_POST[&#39;algo&#39;], hash_algos())===false){
    echo &#39;Unknown hashing algorithm requested.<br>&#39;;
    } else {
    echo &#39;Hashing Algorithm: &#39;. $_POST[&#39;algo&#39;] . &#39;<br>&#39;;
    $hash = hash_file($_POST[&#39;algo&#39;], $_FILES[&#39;file&#39;][&#39;tmp_name&#39;]);
    echo &#39;Calculated hash: &#39; . $hash . &#39;<br>&#39;;
    if($_POST[&#39;exphash&#39;]!==&#39;none&#39; && !empty($_POST[&#39;exphash&#39;])){
      echo &#39;Expected hash:   &#39; . $_POST[&#39;exphash&#39;] . &#39;<br><br>&#39;;
      echo ($hash==$_POST[&#39;exphash&#39;])? &#39;<b id="ok">Hash matched expected value.</b>&#39; : &#39;<b id="nono">Hash did not match expected value.</b>&#39;;
      echo &#39;<br>&#39;;
    }
    }
   }
   ?>
   <br>
   <button onClick="document.location.reload(true)">Again</button>
    <?php
   } else {
  ?>
  <form action="" method="post" enctype="multipart/form-data">
   <input type="hidden" name="exphash" value="none">
   <label for="file">Filename:</label>
   <input type="file" name="file" id="file">
   <input type="submit" name="submit" value="Submit" /><br>
   <label>Expected hash(optional): <input type="text" name="exphash" size="100"></label>
   <br><br>Choose an algorithm (This is the list of all the available algorithms in your php installation)<br>
   <?php
   foreach(hash_algos() as $algo){
    if($algo==&#39;md5&#39;){
    echo "<label><input type=&#39;radio&#39; name=&#39;algo&#39; value=&#39;$algo&#39; checked=&#39;checked&#39;>$algo</label><br>";
    } else {
    echo "<label><input type=&#39;radio&#39; name=&#39;algo&#39; value=&#39;$algo&#39;>$algo</label><br>";
    }
   }
   ?>
  </form>
 <?php
   }
  ?>
</body>
</html>

Zusammenfassung: Das Obige ist der gesamte Inhalt dieses Artikels, ich hoffe, dass er nützlich sein kann Jedermanns Lernhilfe.

Verwandte Empfehlungen:

PHP verwendet reguläre Ausdrücke, um Links im Inhalt zu extrahieren

PHP-Implementierung digitale Paging-Funktion

PHP-Formulardatenvalidierungsklasse

Das obige ist der detaillierte Inhalt vonKurze Beschreibung der PHP-Hash-Operation für Dateien. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn