Центр пользователя  |  Ваши сообщения  |  FAQ
Форум поддержки phpBB » phpBB 3.0.x » Интеграция и конвертирование

Шифрование phpbb

Взаимодействие phpBB 3.0.x с другими системами.
Пожалуйста, помните, что существуют: Поиск, Правила форума
Возможно, ответ на Ваш вопрос уже имеется: Документация, Статьи, Накопленный опыт
Полезные материалы по этой теме: Конвертеры

Сообщение 31 янв 2014, 23:42

Столкнулся с проблемой, необходимо реализовать интеграцию одной игры с форумом рhpbb на таком примере уже реализованным
для вордпрес:
Код: выделить все
function hash_wordpress()
{
  global $realPass, $postPass;
  $cryptPass = false;
  $itoa64 = './0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz';
  $count_log2 = strpos($itoa64, $realPass[3]);
  $count = 1 << $count_log2;
  $salt = substr($realPass, 4, 8);
  $input = md5($salt . $postPass, TRUE);
  do $input = md5($input . $postPass, TRUE);
  while (--$count);       
  $output = substr($realPass, 0, 12);
  $count = 16;
  $i = 0;
  do
  {
   $value = ord($input[$i++]);
   $cryptPass .= $itoa64[$value & 0x3f];
   if ($i < $count) $value |= ord($input[$i]) << 8;
   $cryptPass .= $itoa64[($value >> 6) & 0x3f];
   if ($i++ >= $count) break;
   if ($i < $count) $value |= ord($input[$i]) << 16;
   $cryptPass .= $itoa64[($value >> 12) & 0x3f];
   if ($i++ >= $count) break;
   $cryptPass .= $itoa64[($value >> 18) & 0x3f];
  } while ($i < $count);
  $cryptPass = $output . $cryptPass;
  return $cryptPass;
}
для дле
  global $postPass;
  $cryptPass = false;
  $cryptPass = md5(md5($postPass));
  return $cryptPass;

Нашёл в includes/functions.php строки отвечающие за шифрование
* Hash the password
*/
function phpbb_hash($password)
{
$itoa64 = './0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz';

$random_state = unique_id();
$random = '';
$count = 6;

if (($fh = @fopen('/dev/urandom', 'rb')))
{
  $random = fread($fh, $count);
  fclose($fh);
}

if (strlen($random) < $count)
{
  $random = '';

  for ($i = 0; $i < $count; $i += 16)
  {
   $random_state = md5(unique_id() . $random_state);
   $random .= pack('H*', md5($random_state));
  }
  $random = substr($random, 0, $count);
}

$hash = _hash_crypt_private($password, _hash_gensalt_private($random, $itoa64), $itoa64);

if (strlen($hash) == 34)
{
  return $hash;
}

return md5($password);
}

/**
* Check for correct password
*
* @param string $password The password in plain text
* @param string $hash The stored password hash
*
* @return bool Returns true if the password is correct, false if not.
*/
function phpbb_check_hash($password, $hash)
{
if (strlen($password) > 4096)
{
  // If the password is too huge, we will simply reject it
  // and not let the server try to hash it.
  return false;
}

$itoa64 = './0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz';
if (strlen($hash) == 34)
{
  return (_hash_crypt_private($password, $hash, $itoa64) === $hash) ? true : false;
}

return (md5($password) === $hash) ? true : false;
}

/**
* Generate salt for hash generation
*/
function _hash_gensalt_private($input, &$itoa64, $iteration_count_log2 = 6)
{
if ($iteration_count_log2 < 4 || $iteration_count_log2 > 31)
{
  $iteration_count_log2 = 8;
}

$output = '$H$';
$output .= $itoa64[min($iteration_count_log2 + ((PHP_VERSION >= 5) ? 5 : 3), 30)];
$output .= _hash_encode64($input, 6, $itoa64);

return $output;
}

/**
* Encode hash
*/
function _hash_encode64($input, $count, &$itoa64)
{
$output = '';
$i = 0;

do
{
  $value = ord($input[$i++]);
  $output .= $itoa64[$value & 0x3f];

  if ($i < $count)
  {
   $value |= ord($input[$i]) << 8;
  }

  $output .= $itoa64[($value >> 6) & 0x3f];

  if ($i++ >= $count)
  {
   break;
  }

  if ($i < $count)
  {
   $value |= ord($input[$i]) << 16;
  }

  $output .= $itoa64[($value >> 12) & 0x3f];

  if ($i++ >= $count)
  {
   break;
  }

  $output .= $itoa64[($value >> 18) & 0x3f];
}
while ($i < $count);

return $output;
}

/**


Но как не пробывал не помогает.
alexzt18
Новичок
 
Сообщений: 1
Зарегистрирован:
31 янв 2014, 23:40
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.

Вернуться в Интеграция и конвертирование

 


  • Похожие темы
    Ответов
    Просмотров
    Последнее сообщение

Кто сейчас на форуме

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1

Форум поддержки phpBB
2008 - 2017 © BB3x.ru - русская поддержка форума phpBB3
Создано на основе phpBB® Forum Software © phpBB Group
+ 17 предустановленных модов
+ SEO-оптимизация форума
+ авторизация через соц. сети
+ защита от спама