PHP Classes

File: core/test/RTpassword-161222.php

Recommend this page to a friend!
  Classes of No name   RT PHP   core/test/RTpassword-161222.php   Download  
File: core/test/RTpassword-161222.php
Role: Example script
Content type: text/plain
Description: Example script
Class: RT PHP
Library of general purpose PHP classes
Author: By
Last change:
Date: 7 years ago
Size: 3,360 bytes
 

Contents

Class file image Download
<?php

/**
 * @link https://github.com/rogertiongdev/RTphp RTphp GitHub project
 * @license https://rogertiongdev.github.io/MIT-License/
 */
/**
 * Testing RTpassword on PHP 5.3.29
 *
 * @version 0.1
 * @author Roger Tiong RTdev
 */

/**
 * Print values in new line
 *
 * @param type $v
 */
function nl($v) {

    print
sprintf('%s<br><br>', $v);
}

/**
 * Print hr
 */
function nlhr() {

   
nl('---------------------------------------------------------------------');
}

require_once
'../src/RTpassword.php';

$obj = new RTdev\RTphp\RTpassword();

nlhr();
nl('Start process ...');
nlhr();

if (!
$obj->test()) {

   
nl('Sorry, RTpassword is not compatible with current environment.');
}
else {
   
nl('RTpassword is compatible with current environment.');
   
nlhr();
   
nl('Test 1: With default cost');
   
nlhr();
   
nl(sprintf('Password: %s', $password = 'passwordfortesting_1'));
   
nl(sprintf('Hash: %s', $hash = $obj->bcryptHash($password)));
   
nl(sprintf('Info: %s', json_encode($obj->getHashInfo($hash))));
   
nl(sprintf('Need rehash? With no new cost: %s', ($obj->isNeedReHash($hash) ? 'Yes' : 'No')));
   
nl(sprintf('Need rehash? With new cost (12): %s', ($obj->isNeedReHash($hash, 12) ? 'Yes' : 'No')));
   
nl(sprintf('Verify with password (%s): %s', $password, (($obj->verify($password, $hash) ? 'Success' : 'Fail'))));
   
nl(sprintf('Verify with password (%s): %s', 'thisisfakepassword', (($obj->verify('thisisfakepassword', $hash) ? 'Success' : 'Fail'))));
   
nlhr();
   
nl('Test 2: With custom cost (13)');
   
nlhr();
   
nl(sprintf('Password: %s', $password2 = 'passwordfortesting_2'));
   
nl(sprintf('Hash: %s', $hash2 = $obj->bcryptHash($password2, 13)));
   
nl(sprintf('Info: %s', json_encode($obj->getHashInfo($hash2))));
   
nl(sprintf('Need rehash? With default cost: %s', ($obj->isNeedReHash($hash2) ? 'Yes' : 'No')));
   
nl(sprintf('Need rehash? With current cost (13): %s', ($obj->isNeedReHash($hash2, 13) ? 'Yes' : 'No')));
   
nl(sprintf('Need rehash? With new cost (12): %s', ($obj->isNeedReHash($hash, 12) ? 'Yes' : 'No')));
   
nl(sprintf('Verify with password (%s): %s', $password2, (($obj->verify($password2, $hash2) ? 'Success' : 'Fail'))));
   
nl(sprintf('Verify with password (%s): %s', 'thisisfakepassword', (($obj->verify('thisisfakepassword', $hash2) ? 'Success' : 'Fail'))));
   
nlhr();
   
nl('Test 3: Speed');
   
nlhr();

   
$max = 16;
   
$longpassword = 'Ju$+U$ingL0ngP@$$W0rdT0T3$tH@$hingSp33d!#?';

   
nlhr();
   
nl(sprintf('Password: %s', $longpassword));
   
nlhr();

    for (
$i = 7; ++$i <= $max;) {

       
nl(sprintf('Cost: %d', $i));
       
$start = time();
       
nl(sprintf('Hash: %s', $hash = $obj->bcryptHash($longpassword, $i)));
       
nl(sprintf('Duration (H:i:s): %s', (date('H:i:s', (time() - $start)))));
       
nl(sprintf('Verify: %s', ($obj->verify($longpassword, $hash) ? 'Success' : 'Fail')));
       
nlhr();
    }
}

nlhr();
nl('End process!');
nlhr();

/**
 * Code tested by PHP built-in password function on http://sandbox.onlinephpfunctions.com/ with PHP 7.0.5<br>
 * Longer time is needed for higher cost. Suggest to use default cost.<br>
 * Hash generated by RTpassword with default cost: 10<br>
 * print (password_verify('Ju$+U$ingL0ngP@$$W0rdT0T3$tH@$hingSp33d!#?', '$2y$10$KUd63hYCG5gt4o9tL1beW.n2kssvhEwX/uahz2aaG/j95uzv2F8Qu') ? 'Success' : 'Fail');
 */