aboutsummaryrefslogtreecommitdiff
path: root/pwhash.php
diff options
context:
space:
mode:
authorKevin Chabowski <kevin@kch42.de>2012-01-05 14:43:33 +0100
committerKevin Chabowski <kevin@kch42.de>2012-01-05 14:43:33 +0100
commitc4cc87d9d1557ddd4cae4b06b79696712f61a2ad (patch)
tree081b31be890c484040a63f626063e846ef583680 /pwhash.php
parente99281261767710f96b9967a0ab03a3ea24a05e0 (diff)
downloadr7r-repo-c4cc87d9d1557ddd4cae4b06b79696712f61a2ad.tar.gz
r7r-repo-c4cc87d9d1557ddd4cae4b06b79696712f61a2ad.tar.bz2
r7r-repo-c4cc87d9d1557ddd4cae4b06b79696712f61a2ad.zip
New directory hierachy. index and setup implemented.
Diffstat (limited to 'pwhash.php')
-rw-r--r--pwhash.php74
1 files changed, 0 insertions, 74 deletions
diff --git a/pwhash.php b/pwhash.php
deleted file mode 100644
index 8ec4762..0000000
--- a/pwhash.php
+++ /dev/null
@@ -1,74 +0,0 @@
-<?php
-/*
- * File: ratatoeskr/sys/pwhash.php
- *
- * Hashing passwords
- *
- * License:
- * This file is part of Ratatöskr.
- * Ratatöskr is licensed unter the MIT / X11 License.
- * See "ratatoeskr/licenses/ratatoeskr" for more information.
- */
-
-/*
- * Class: PasswordHash
- * Contains static functions for password hashes.
- * Is just used as a namespace, can not be created.
- *
- * It should be fairly difficult to break these salted hashes via bruteforce attacks.
- */
-class PasswordHash
-{
- private function __construct() {} /* Prevent construction */
-
- private static $saltlen_min = 20;
- private static $saltlen_max = 30;
- private static $iterations_min = 200;
- private static $iterations_max = 1000;
-
- private static function hash($data, $salt, $iterations)
- {
- $hash = $data . $salt;
- for($i = $iterations ;$i--;)
- $hash = sha1($data . $hash . $salt, (bool) $i);
- return $iterations . '$' . bin2hex($salt) . '$' . $hash;
- }
-
- /*
- * Function: create
- * Create a password hash string.
- *
- * Parameters:
- * $password - The password (or other data) to hash.
- *
- * Returns:
- * The salted hash as a string.
- */
- public static function create($password)
- {
- $salt = "";
- $saltlen = mt_rand(self::$saltlen_min, self::$saltlen_max);
- for($i = 0; $i < $saltlen; $i++)
- $salt .= chr(mt_rand(0,255));
- return self::hash($password, $salt, mt_rand(self::$iterations_min, self::$iterations_max));
- }
-
- /*
- * Function: validate
- * Validate a salted hash.
- *
- * Parameters:
- * $password - The password to test.
- * $pwhash - The hash to test against.
- *
- * Returns:
- * True, if $password was correct, False otherwise.
- */
- public static function validate($password, $pwhash)
- {
- list($iterations, $hexsalt, $hash) = explode('$', $pwhash);
- return self::hash($password, pack("H*", $hexsalt), $iterations) == $pwhash;
- }
-}
-
-?>