* @license http://www.gnu.org/licenses/lgpl-2.1.html LGPL v 2.1 */ namespace PasswordLibExamples\Password; //We first load the bootstrap file so we have access to the library require_once dirname(dirname(__DIR__)) . '/lib/PasswordLib/bootstrap.php'; /** * Now, let's create a password that's compatible with Drupal */ // First, let's create an instance of Drupal, where 15 is the iteration count for D7 $hasher = new \PasswordLib\Password\Implementation\Drupal(15); $password = '******'; // Now, let's create a password hash of the password "FooBarBaz" $hash = $hasher->create($password); //It's safe to print, so let's output it: printf("Password: %s\nHash: %s\n\n", $password, $hash); /** * Now, we can also verify any passwords created by Drupal. First, let's load a hash. * * This works, because it detects the iteration count that's stored in the hash, and * pre-configures our instance for us. */ $hasher2 = \PasswordLib\Password\Implementation\Drupal::loadFromHash($hash); /** * Next, we verify the hash with the expected password. */ $test = $hasher2->verify($password, $hash); /** * $test should now contain a boolean value as to the validity of the hash */ printf("Verification was %s\n\n", $test ? "Successful!" : "Failed!");
/** * @covers PasswordLib\Password\Implementation\Drupal * @expectedException InvalidArgumentException */ public function testLoadFromHashFail() { Drupal::loadFromHash('foo'); }