Results 1 to 5 of 5

Thread: [RESOLVED] How to use this PHP Hash+Salt script?

  1. #1

    Thread Starter
    Hyperactive Member
    Join Date
    Nov 2014
    Posts
    428

    Resolved [RESOLVED] How to use this PHP Hash+Salt script?

    Hello Guys,

    I am trying to encrypt my php web portal login system's password with hash+salt as suggested by some vbforum member. Now I got a code example for doing that but I am really not getting how and in which way to implement the whole password hash+salt system into my registration and login system.

    PHP Code Example:
    Code:
    <?php
    define("PBKDF2_HASH_ALGORITHM", "sha256");
    define("PBKDF2_ITERATIONS", 1000);
    define("PBKDF2_SALT_BYTE_SIZE", 24);
    define("PBKDF2_HASH_BYTE_SIZE", 24);
    
    define("HASH_SECTIONS", 4);
    define("HASH_ALGORITHM_INDEX", 0);
    define("HASH_ITERATION_INDEX", 1);
    define("HASH_SALT_INDEX", 2);
    define("HASH_PBKDF2_INDEX", 3);
    
    function create_hash($password)
    {
        $salt = base64_encode(mcrypt_create_iv(PBKDF2_SALT_BYTE_SIZE, MCRYPT_DEV_URANDOM));
        return PBKDF2_HASH_ALGORITHM . ":" . PBKDF2_ITERATIONS . ":" .  $salt . ":" . 
            base64_encode(pbkdf2(
                PBKDF2_HASH_ALGORITHM,
                $password,
                $salt,
                PBKDF2_ITERATIONS,
                PBKDF2_HASH_BYTE_SIZE,
                true
            ));
    }
    
    function validate_password($password, $correct_hash)
    {
        $params = explode(":", $correct_hash);
        if(count($params) < HASH_SECTIONS)
        return false;
        $pbkdf2 = base64_decode($params[HASH_PBKDF2_INDEX]);
        return slow_equals(
            $pbkdf2,
            pbkdf2(
                $params[HASH_ALGORITHM_INDEX],
                $password,
                $params[HASH_SALT_INDEX],
                (int)$params[HASH_ITERATION_INDEX],
                strlen($pbkdf2),
                true
            )
        );
    }
    
    function slow_equals($a, $b)
    {
        $diff = strlen($a) ^ strlen($b);
        for($i = 0; $i < strlen($a) && $i < strlen($b); $i++)
        {
            $diff |= ord($a[$i]) ^ ord($b[$i]);
        }
        return $diff === 0;
    }
    
    function pbkdf2($algorithm, $password, $salt, $count, $key_length, $raw_output = false)
    {
        $algorithm = strtolower($algorithm);
        if(!in_array($algorithm, hash_algos(), true))
            trigger_error('PBKDF2 ERROR: Invalid hash algorithm.', E_USER_ERROR);
        if($count <= 0 || $key_length <= 0)
            trigger_error('PBKDF2 ERROR: Invalid parameters.', E_USER_ERROR);
    
        if (function_exists("hash_pbkdf2")) {
            if (!$raw_output) {
                $key_length = $key_length * 2;
            }
            return hash_pbkdf2($algorithm, $password, $salt, $count, $key_length, $raw_output);
        }
    
        $hash_length = strlen(hash($algorithm, "", true));
        $block_count = ceil($key_length / $hash_length);
    
        $output = "";
        for($i = 1; $i <= $block_count; $i++) {
            $last = $salt . pack("N", $i);
            $last = $xorsum = hash_hmac($algorithm, $last, $password, true);
            for ($j = 1; $j < $count; $j++) {
                $xorsum ^= ($last = hash_hmac($algorithm, $last, $password, true));
            }
            $output .= $xorsum;
        }
    
        if($raw_output)
            return substr($output, 0, $key_length);
        else
            return bin2hex(substr($output, 0, $key_length));
    }
    ?>

    Please suggest me how can I use this code to achieve the hashing technique. And is there any excessive codes in the example? If so then please optimize it for me. And please help me out with the implementation.


    Thanks in advance....

  2. #2

    Thread Starter
    Hyperactive Member
    Join Date
    Nov 2014
    Posts
    428

    Re: How to use this PHP Hash+Salt script?

    Bump

  3. #3
    Registered User
    Join Date
    Aug 2015
    Posts
    1

    Re: How to use this PHP Hash+Salt script?

    Can some one tell me How to use this PHP Hash+Salt script? please give me some solution for this.

  4. #4
    PowerPoster kfcSmitty's Avatar
    Join Date
    May 2005
    Posts
    2,248

    Re: How to use this PHP Hash+Salt script?

    If you check the github account of the guy who wrote it, he has examples:

    https://github.com/defuse/password-h...ter/compatible

  5. #5

    Thread Starter
    Hyperactive Member
    Join Date
    Nov 2014
    Posts
    428

    Re: How to use this PHP Hash+Salt script?

    Thanks for the reply smitty. Problem Solved

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •  



Click Here to Expand Forum to Full Width