A-A+

PHP实现的DES加密解密实例代码

2019年10月16日 我爱编程 暂无评论

本文实例讲述了PHP实现的DES加密解密实例。分享给大家供大家参考,具体如下:

  1. <?php
  2. $key = 'very important data';
  3. function jiami($key$str)
  4. {
  5.   /* Open module, and create IV */
  6.   $td = mcrypt_module_open('des''''ecb''');
  7.   //$td = mcrypt_module_open(MCRYPT_DES, '', MCRYPT_MODE_CBC, '');
  8.   //$td = mcrypt_module_open('des', '', 'cbc', '');
  9.   $key = substr($key, 0, mcrypt_enc_get_key_size($td));
  10.   $iv_size = mcrypt_enc_get_iv_size($td);
  11.   $iv = mcrypt_create_iv($iv_size, MCRYPT_RAND);
  12.   /* Initialize encryption handle */
  13.   if (mcrypt_generic_init($td$key$iv) === -1)
  14.   {
  15.     return FALSE;
  16.   }
  17.   /* Encrypt data */
  18.   $c_t = mcrypt_generic($td$str);
  19.   /* Clean up */
  20.   mcrypt_generic_deinit($td);
  21.   mcrypt_module_close($td);
  22.   return $c_t;
  23. }
  24. function jiemi($key$str)
  25. {
  26.   /* Open module, and create IV */
  27.   $td = mcrypt_module_open('des''''ecb''');
  28.   //$td = mcrypt_module_open(MCRYPT_DES, '', MCRYPT_MODE_CBC, '');
  29.   //$td = mcrypt_module_open('des', '', 'cbc', '');
  30.   $key = substr($key, 0, mcrypt_enc_get_key_size($td));
  31.   $iv_size = mcrypt_enc_get_iv_size($td);
  32.   $iv = mcrypt_create_iv($iv_size, MCRYPT_RAND);
  33.   /* Initialize encryption handle */
  34.   if (mcrypt_generic_init($td$key$iv) === -1)
  35.   {
  36.     return FALSE;
  37.   }
  38.   /* Reinitialize buffers for decryption */
  39.   $p_t = mdecrypt_generic($td$str);
  40.   /* Clean up */
  41.   mcrypt_generic_deinit($td);
  42.   mcrypt_module_close($td);
  43.   return trim($p_t);
  44. }
  45. $str = 'hello world!';
  46. echo 'key:' . $key . '<br>';
  47. echo 'str:' . $str . '<br>';
  48. $jiami = jiami($key$str);
  49. echo '加密:' . $jiami . '<br>';
  50. file_put_contents('jiamiqian.txt'$str);
  51. file_put_contents('jiamihou.txt'$jiami);
  52. $jiemi = jiemi($key$jiami);
  53. echo '解密:' . $jiemi . '<br>';

给我留言

Copyright © 四季博客 保留所有权利.   Theme  Ality

用户登录