<?PHP
 
  //this example is a bit more complicated because it includse a bit of form logic
 
  //see the the other example for a simple explanation
 
 
  $password = '';
 
  $cypher = ( isset($_REQUEST['cypher']) ) ? $_REQUEST['cypher'] : '';
 
  $formhash = ( isset($_REQUEST['hash']) ) ? $_REQUEST['hash'] : null;
 
  if( isset($_REQUEST['password']) === true )
 
  {
 
    //this will hash the plain text password
 
    require_once 'class_password.php';
 
    $pwd = new Password();
 
 
    //* gen new hash *
 
    if( $formhash === null ) //only generate one hash for this example
 
    {
 
      $password = $_REQUEST['password']; //password provided by user
 
      $pwd->set_hash_rounds($cypher, 10000);
 
      $pwd->set_hash_type( $cypher );
 
      $formhash = $pwd->hash($password); //hash the password
 
      //$formhash now contains the hashed pw, store this value in your db since we need it
 
      //when the user wants to login again
 
      //I will output the hash into a textbox for this example.
 
    }
 
    //this will validate the stored hash against the entered plain thext password
 
    if( isset($_REQUEST['hash']) === true )
 
    {
 
      $db_hash = $_REQUEST['hash']; //retrieve previously generated hash.
 
      $password = $_REQUEST['password']; //password provided by user
 
      $pwd->set_hash_rounds($cypher, 10000);
 
      $pwd->set_hash_type( $cypher );
 
      $hash = $pwd->re_hash( $db_hash, $password ); //hash the entered password with the salt of db_hash
 
      //if the entered pw is correct then $hash and the hash from your db must match exactly ===
 
      if( $hash === $db_hash )
 
        echo '<h1>Valid password</h1>';
 
      else
 
        echo '<h1>Invalid password</h1>';
 
    }
 
  }
 
    ?>
 
<!DOCTYPE HTML>
 
<html lang="en">
 
  <head>
 
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
 
    <title>class_password demo</title>
 
  </head>
 
  <body onload="document.forms[0].password.focus();">
 
    <div class="pw_test">
 
      <p> </p>
 
      <p> </p>
 
      <form method="post" name="login_form">
 
        <table class="center">
 
          <tr>
 
            <td>Please enter your password:</td>
 
            <td><input type="text" name="password" value="<?PHP echo $password; ?>" tabindex="1" size="30" required="required" /></td>
 
          </tr> 
 
          <tr>
 
            <td>select a cypher</td>
 
            <td>
 
              <?PHP 
 
                if( isset($_REQUEST['cypher']) ) 
 
                  echo '<input type="radio" name="cypher" checked="checked" value="'.$cypher.'" /> '.$cypher.'<br />'; 
 
                else{
 
                  echo '<input type="radio" name="cypher" value="sha512" /> sha512<br />
 
                        <input type="radio" name="cypher" value="sha256" /> sha256<br />
 
                        <input type="radio" name="cypher" value="md5" /> md5';
 
                }
 
                ?>
 
            </td>
 
          </tr>   
 
          </table>
 
          <?PHP
 
            if( $formhash !== null )
 
            {
 
              echo '<p>Your hash has been generated. Submit it again to validate it against your password.<br />';
 
              echo '<input type="text" name="hash" value="'.$formhash.'" size="100" /></p>';
 
            }
 
          ?>
 
        
 
 
        <p><input tabindex="3" name="Submit" value="Submit" type="submit" /></p>
 
        <p><a href="class_password-test.php">start over</a></p>
 
      </form>
 
    </div>
 
  </body>
 
</html>
 
 |