Maison >développement back-end >tutoriel php >php des codes de cryptage et de décryptage

php des codes de cryptage et de décryptage

怪我咯
怪我咯original
2017-07-23 09:56:433388parcourir

DES signifie Data Encryption Standard, qui est un algorithme de bloc qui utilise le cryptage par clé. En 1977, il a été déterminé comme la norme fédérale de traitement de l'information (FIPS) par le Bureau national des normes du gouvernement fédéral américain et autorisé en Afrique. Utilisé dans les communications gouvernementales classifiées, l’algorithme a ensuite été largement diffusé à l’échelle internationale. Il convient de noter que dans certaines publications, le DES en tant qu'algorithme est appelé algorithme de chiffrement de données (DEA), qui a été distingué du DES en tant que standard.

Cet article présente principalement la méthode de cryptage et de décryptage DES implémentée par PHP, et analyse les techniques associées de cryptage et de décryptage DES par PHP sous la forme d'un exemple complet. Les amis dans le besoin peuvent se référer à , les détails sont les suivants :

<?php
$key = &#39;very important data&#39;;
function jiami($key, $str)
{
  /* Open module, and create IV */
  $td = mcrypt_module_open(&#39;des&#39;, &#39;&#39;, &#39;ecb&#39;, &#39;&#39;);
  //$td = mcrypt_module_open(MCRYPT_DES, &#39;&#39;, MCRYPT_MODE_CBC, &#39;&#39;);
  //$td = mcrypt_module_open(&#39;des&#39;, &#39;&#39;, &#39;cbc&#39;, &#39;&#39;);
  $key = substr($key, 0, mcrypt_enc_get_key_size($td));
  $iv_size = mcrypt_enc_get_iv_size($td);
  $iv = mcrypt_create_iv($iv_size, MCRYPT_RAND);
  /* Initialize encryption handle */
  if (mcrypt_generic_init($td, $key, $iv) === -1)
  {
    return FALSE;
  }
  /* Encrypt data */
  $c_t = mcrypt_generic($td, $str);
  /* Clean up */
  mcrypt_generic_deinit($td);
  mcrypt_module_close($td);
  return $c_t;
}
function jiemi($key, $str)
{
  /* Open module, and create IV */
  $td = mcrypt_module_open(&#39;des&#39;, &#39;&#39;, &#39;ecb&#39;, &#39;&#39;);
  //$td = mcrypt_module_open(MCRYPT_DES, &#39;&#39;, MCRYPT_MODE_CBC, &#39;&#39;);
  //$td = mcrypt_module_open(&#39;des&#39;, &#39;&#39;, &#39;cbc&#39;, &#39;&#39;);
  $key = substr($key, 0, mcrypt_enc_get_key_size($td));
  $iv_size = mcrypt_enc_get_iv_size($td);
  $iv = mcrypt_create_iv($iv_size, MCRYPT_RAND);
  /* Initialize encryption handle */
  if (mcrypt_generic_init($td, $key, $iv) === -1)
  {
    return FALSE;
  }
  /* Reinitialize buffers for decryption */
  $p_t = mdecrypt_generic($td, $str);
  /* Clean up */
  mcrypt_generic_deinit($td);
  mcrypt_module_close($td);
  return trim($p_t);
}
$str = &#39;hello world!&#39;;
echo &#39;key:&#39; . $key . &#39;<br>&#39;;
echo &#39;str:&#39; . $str . &#39;<br>&#39;;
$jiami = jiami($key, $str);
echo &#39;加密:&#39; . $jiami . &#39;<br>&#39;;
file_put_contents(&#39;jiamiqian.txt&#39;, $str);
file_put_contents(&#39;jiamihou.txt&#39;, $jiami);
$jiemi = jiemi($key, $jiami);
echo &#39;解密:&#39; . $jiemi . &#39;<br>&#39;;

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