security.php 976 B

1234567891011121314151617181920212223242526272829303132333435363738394041
  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(isset($_GET['key'])&&isset($SESSION['key'])&&isset($SESSION['username'])&&isUser($SESSION['usernamed'])){
  21. if($_GET['key'] != $SESSION['key']){
  22. setKey(null);
  23. retj(Array('error'=>'Invalid key, you were logged out.'));
  24. }
  25. setKey($SESSION['key']);
  26. }else{
  27. setKey(null);
  28. }
  29. }
  30. function setKey($key){
  31. global $SESSION;
  32. if($key == null){
  33. unset($SESSION['key']);
  34. unset($SESSION['username']);
  35. setcookie('key','',time()-3600);
  36. }else{
  37. $SESSION['key'] = $key;
  38. setcookie('key',$key,time()+3600);
  39. }
  40. }
  41. ?>