2017-03-02 17 views
0

나는 사용자가 내 seafile 서버에 로그인해야 할 때마다 임의의 암호를 생성하려고합니다. seafile 사용 : 이 - - 10000 반복 - SHA256 와 PBKDF2 32 바이트 소금seafile pbkdf2 해시 PHP

내가 사용하는 코드는 이것이다는 :

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

알고리즘, 소금, 암호 및 반복이 일치하지 않는 이유는 무엇입니까?

목표는 새 비밀번호를 생성하여 데이터베이스에 삽입하고 사용자에게 제공하여 로그인 할 수있게하는 것입니다. 당신은 진수 인코딩 $ 소금에 전달하는

감사

답변

1

는) (hash_pbkdf2에 $ 소금 원시 바이트를 전달해야합니다.

+0

yuo're 바로 내가 그것에 대해 생각하지 않았어, 고마워. – FreedomSka