Maison  >  Article  >  développement back-end  >  Brève description de l'opération de hachage php sur les fichiers

Brève description de l'opération de hachage php sur les fichiers

墨辰丷
墨辰丷original
2018-06-11 17:00:312105parcourir

Cet article présente principalement comment PHP effectue des opérations de hachage sur les fichiers, impliquant des techniques d'opération de hachage pour les fichiers. Il est d'une grande valeur pratique. Les amis dans le besoin peuvent s'y référer

L'exemple de cet article raconte l'histoire. de la façon dont PHP effectue des opérations de hachage sur les fichiers. Méthode pour effectuer des opérations de hachage. Les détails sont les suivants :

Ce code est très utile si vous téléchargez un fichier, le site Web fournit un résultat de hachage. Vous pouvez effectuer une opération de hachage sur le fichier que vous avez téléchargé pour vérifier si le fichier téléchargé est correct. .

<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>

Résumé : Ce qui précède est l'intégralité du contenu de cet article, j'espère que cela pourra vous aider tout le monde apprend Aide.

Recommandations associées :

php utilise des expressions régulières pour extraire des liens dans le contenu

Implémentation PHP fonction de pagination numérique

Classe de validation des données du formulaire PHP

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn