<?php function salt(){ return uniqid(mt_rand(0,61), true); } function saltedHash($pass,$salt){ $hash = $pass.$salt; for($i = 0;$i<50;$i++){ $hash = hash('sha512',$pass.$hash.$salt); } return $hash; } function compareSaltedHash($pass,$salt,$hash){ return $hash == saltedHash($pass,$salt); } function securityKey($username,$salt){ return saltedHash($username,$salt); } function authenticate(){ global $SESSION; if(loggedIn()){ setKey($SESSION['key']); } } function loggedIn(){ global $SESSION; if(isset($_GET['key'])&&isset($SESSION['key'])&&isset($SESSION['username'])&&isUser($SESSION['username'])){ if($_GET['key'] == $SESSION['key']){ return true; } } setKey(null); return false; } function setKey($key){ global $SESSION; if($key == null){ unset($SESSION['key']); unset($SESSION['username']); }else{ $SESSION['key'] = $key; setcookie('key',$key,time()+get('timeout')); } } ?>