2017-03-02 1 views
0

J'essaie de générer un mot de passe aléatoire pour l'utilisateur chaque fois qu'il doit se connecter sur mon serveur seafile. seafile utilisation: - PBKDF2 avec SHA256 - 10000 itérations - 32 octets selseafile pbkdf2 hash php

Le code i utilise est ceci:

<?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>"; 

?> 

le problème est que même avec le même sel i obtenir une sortie différente exemple:

SALT: 09d095a396852b525ce7f5408fe7d314a2632a19bfc8c495c8e79bd4e6aebfed 
PASSWORD: weirdone 

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

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

si l'algorithme, le sel, le mot de passe et les itérations sont les mêmes pourquoi ils ne correspondent pas?

le but est de générer le nouveau mot de passe, de l'insérer dans la base de données et de le donner à l'utilisateur afin qu'il puisse se connecter.

Merci

Répondre

1

vous passez dans le sel $ hex codé, doivent passer dans les octets bruts $ à sel hash_pbkdf2().

+0

vous avez raison, je n'y ai pas pensé, merci – FreedomSka