slowEquals() публичный статический Метод

fixed time string comparison operation to prevent timing attacks https://crackstation.net/hashing-security.htm?=rd#slowequals
public static slowEquals ( string $a, string $b ) : boolean
$a string
$b string
Результат boolean
Пример #1
0
 /**
  * Delete an existing paste
  *
  * @access private
  * @param  string $dataid
  * @param  string $deletetoken
  * @return void
  */
 private function _delete($dataid, $deletetoken)
 {
     try {
         $paste = $this->_model->getPaste($dataid);
         if ($paste->exists()) {
             // accessing this property ensures that the paste would be
             // deleted if it has already expired
             $burnafterreading = $paste->isBurnafterreading();
             if ($deletetoken == 'burnafterreading') {
                 if ($burnafterreading) {
                     $paste->delete();
                     $this->_return_message(0, $dataid);
                 } else {
                     $this->_return_message(1, 'Paste is not of burn-after-reading type.');
                 }
             } else {
                 // Make sure the token is valid.
                 if (Filter::slowEquals($deletetoken, $paste->getDeleteToken())) {
                     // Paste exists and deletion token is valid: Delete the paste.
                     $paste->delete();
                     $this->_status = 'Paste was properly deleted.';
                 } else {
                     $this->_error = 'Wrong deletion token. Paste was not deleted.';
                 }
             }
         } else {
             $this->_error = self::GENERIC_ERROR;
         }
     } catch (Exception $e) {
         $this->_error = $e->getMessage();
     }
 }