За последние 24 часа нас посетил 8381 программист и 478 роботов. Сейчас ищут 248 программистов ...

Разобраться с классом authfile и с помощью него сделать авторизацию

Тема в разделе "Сделайте за меня", создана пользователем rektware, 19 ноя 2018.

  1. rektware

    rektware Новичок

    С нами с:
    18 янв 2018
    Сообщения:
    3
    Симпатии:
    0
    Здравствуйте, форумчане! Есть такой класс PHP :
    PHP:
    1. <?php
    2. class AuthFile
    3. {
    4.     /**
    5.      * Класс для создания и обработки ключ-файлов
    6.      * по которым происходит авторизация пользователей.
    7.      * */
    8.     private $chars = 'abcdefghijklmnopqrstuwyzxv1234567890';
    9.     private $login_length;
    10.     private $start_salt;
    11.     private $salt_start_length;
    12.     private $end_salt;
    13.     private $login;
    14.     private $email;
    15.     private $password;
    16.    
    17.     public function createFile($login,$password,$email){
    18.         $this->login = $login;
    19.         $this->email = $email;
    20.         $this->password = $password;
    21.         $this->login_length = strlen($login);
    22.         if($this->login_length > 9){
    23.             $this->salt_start_length = 25496 - ($this->login_length*5) - 3;
    24.         }
    25.         else{
    26.             $this->salt_start_length = 25496 - ($this->login_length*5) - 2;
    27.         }
    28.         return $this;
    29.     }
    30.     private function generateData(){
    31.         $data = $this->login_length.'a'.$this->generateLogin().$this->generateSalt($this->salt_start_length);
    32.         return $data;
    33.     }
    34.     public function generateMasterFile(){
    35.         $data = $this->generateData().$this->generateHash($this->login.$this->email.$this->password).$this->generateSalt(25496);
    36.         return $data;
    37.     }
    38.     public function generateKeyFile(){
    39.         $data = $this->generateData().$this->generateHash($this->password).$this->generateSalt(25496);
    40.         return $data;
    41.     }
    42.     private function generateLogin(){
    43.         for($i = 0; $i < $this->login_length; $i++){
    44.             $data .= substr($this->login,$i,1).substr($this->generateSalt($this->login_length*4),$j,4);
    45.         }
    46.         return $data;
    47.     }
    48.     private function generateHash($data){
    49.         $j = 0;
    50.         for($i = 0; $i <= 80; $i += 20){
    51.             $hash .= substr($this->generateSalt(128),$j,32).substr(hash('ripemd320',$data),$i,20);
    52.             $j += 32;
    53.         }
    54.         return $hash;
    55.     }
    56.     private function generateSalt($length){
    57.         for($i = 0; $i < $length; $i++)
    58.             $salt .= substr($this->chars, rand(1, 35), 1);
    59.         return $salt;
    60.     }
    61.     public function readFile($file,$that){
    62.         $data = file_get_contents($file);
    63.         switch($that){
    64.             case 'login':
    65.                 if(substr($data,1,1) == 'a'){
    66.                     $login_length = substr($data,0,1);
    67.                     $login_temp = substr($data,2,$login_length*5);
    68.                 }
    69.                 else{
    70.                     $login_length = substr($data,0,2);
    71.                     $login_temp = substr($data,3,$login_length*5);
    72.                 }
    73.                 for($i = 0; $i < $login_length*5; $i +=5){
    74.                     $output .= substr($login_temp,$i,1);
    75.                 }
    76.                 break;
    77.             case 'hash':
    78.                 $hash_temp = substr($data,25496,208);
    79.                 for($i = 32; $i < 208; $i += 52){
    80.                     $output .=substr($hash_temp,$i,20);
    81.                 }
    82.                 break;
    83.             default:
    84.                 $output = null;
    85.                 break;
    86.         }
    87.         return $output;
    88.     }
    89. }
    Примеры :
    PHP:
    1. <?php
    2. require_once 'authFile.php';
    3.  
    4. $authFile = new AuthFile;
    5.  
    6. file_put_contents("filename",$authFile->createFile("login","pass","email")->generateKeyFile());
    PHP:
    1. <?php
    2. require_once 'authFile.php';
    3.  
    4. $authFile = new AuthFile;
    5.  
    6. echo "hash ".$authFile->readFile("filename","hash")."<br>";
    7. echo "login ".$authFile->readFile("filename","login");
    Помогите сделать регистрацию и авторизацию с использованием этого класса. Заранее благодарен.
     
  2. abrdabr

    abrdabr Новичок

    С нами с:
    28 янв 2017
    Сообщения:
    780
    Симпатии:
    65
    @rektware если бы я был интерпритатором то выдал бы ошибку функтион андефине $this->login_length он лине хз

    то есть полагаю, есть ошибка, данный класс должен быть потомком, либо иметь функцию логинленгзт
    чего не наблюдается, будте любезны предоставить всю информацию
     
  3. rektware

    rektware Новичок

    С нами с:
    18 янв 2018
    Сообщения:
    3
    Симпатии:
    0
    Это все что есть