• 问题:后台提示 make_hash() 函数错误。
  • 解决办法
    • 将以下代码粘贴到 /include/common.func.php 文件中:
      function make_hash() {
          $rand = dede_random_bytes(16);
          $_SESSION['token'] = ($rand === FALSE) ? md5(uniqid(mt_rand(), TRUE)) : bin2hex($rand);
          return $_SESSION['token'];
      }
      
      function dede_random_bytes($length) {
          if (empty($length) OR !ctype_digit((string) $length)) {
              return FALSE;
          }
          if (function_exists('random_bytes')) {
              try {
                  return random_bytes((int) $length);
              } catch (Exception $e) {
                  return FALSE;
              }
          }
          if (defined('MCRYPT_DEV_URANDOM') && ($output = mcrypt_create_iv($length, MCRYPT_DEV_URANDOM)) !== FALSE) {
              return $output;
          }
          if (is_readable('/dev/urandom') && ($fp = fopen('/dev/urandom', 'rb')) !== FALSE) {
              is_php('5.4') && stream_set_chunk_size($fp, $length);
              $output = fread($fp, $length);
              fclose($fp);
              if ($output !== FALSE) {
                  return $output;
              }
          }
          if (function_exists('openssl_random_pseudo_bytes')) {
              return openssl_random_pseudo_bytes($length);
          }
          return FALSE;
      }