Seafile pbkdf2 хэш php

Я пытаюсь сгенерировать случайный пароль для пользователя каждый раз, когда ему нужно войти на мой сервер Seafile. использование морского файла: - PBKDF2 с SHA256 - 10000 итераций - 32 байта соли

Код, который я использую, таков:

<?php   
  $salt = random_bytes(32);
  $salt = bin2hex($salt);
  $iterations = 10000;
  echo "GENERATED SALT: " . $salt . "<br>" . "<br>";

  $hash =  hash_pbkdf2 ("sha256" , "weirdone" , $salt , $iterations);
  echo "GENERATED HASH: " . $hash . "<br>" . "<br>";

  echo "FINAL RESULT: PBKDF2SHA256$" . $iterations . "$" . $salt . "$" . $hash . "<br>" . "<br>";

?>

проблема в том, что даже с одной и той же солью я получаю разные выходные данные Пример:

SALT: 09d095a396852b525ce7f5408fe7d314a2632a19bfc8c495c8e79bd4e6aebfed
PASSWORD: weirdone

  seafile output:
  PBKDF2SHA256$10000$09d095a396852b525ce7f5408fe7d314a2632a19bfc8c495c8e79bd4e6aebfed$45145c60802f1fdce581a550b5e23f8027ba6ff0720c81f2efaa73025bd465ca

  my output:
  PBKDF2SHA256$10000$09d095a396852b525ce7f5408fe7d314a2632a19bfc8c495c8e79bd4e6aebfed$007c599ba2d0076e19589bb90303155efa2df8a2f6b49d845902c075bc5f5492

если алгоритм, соль, пароль и итерации одинаковы, почему они не совпадают?

цель состоит в том, чтобы сгенерировать новый пароль, вставить его в базу данных и передать пользователю, чтобы он мог войти в систему.

Спасибо


person FreedomSka    schedule 02.03.2017    source источник


Ответы (1)


Вы передаете $salt в шестнадцатеричном коде, вам нужно передать необработанные байты $salt в hash_pbkdf2().

person Eli Collins    schedule 04.03.2017