За последние 24 часа нас посетили 20925 программистов и 1129 роботов. Сейчас ищут 382 программиста ...

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

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

  1. rektware

    rektware Активный пользователь

    С нами с:
    18 янв 2018
    Сообщения:
    23
    Симпатии:
    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
    Сообщения:
    774
    Симпатии:
    65
    @rektware если бы я был интерпритатором то выдал бы ошибку функтион андефине $this->login_length он лине хз

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

    rektware Активный пользователь

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