security.php 957 B

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. <?php
  2. function salt(){
  3. return uniqid(mt_rand(0,61), true);
  4. }
  5. function saltedHash($pass,$salt){
  6. $hash = $pass.$salt;
  7. for($i = 0;$i<50;$i++){
  8. $hash = hash('sha512',$pass.$hash.$salt);
  9. }
  10. return $hash;
  11. }
  12. function compareSaltedHash($pass,$salt,$hash){
  13. return $hash == saltedHash($pass,$salt);
  14. }
  15. function securityKey($username,$salt){
  16. return saltedHash($username,$salt);
  17. }
  18. function authenticate(){
  19. global $SESSION;
  20. if(loggedIn()){
  21. setKey($SESSION['key']);
  22. }
  23. }
  24. function loggedIn(){
  25. global $SESSION;
  26. if(isset($_GET['key'])&&isset($SESSION['key'])&&isset($SESSION['username'])&&isUser($SESSION['username'])){
  27. if($_GET['key'] == $SESSION['key']){
  28. return true;
  29. }
  30. }
  31. setKey(null);
  32. return false;
  33. }
  34. function setKey($key){
  35. global $SESSION;
  36. if($key == null){
  37. unset($SESSION['key']);
  38. unset($SESSION['username']);
  39. }else{
  40. $SESSION['key'] = $key;
  41. setcookie('key',$key,time()+get('timeout'));
  42. }
  43. }
  44. ?>