/**
  * (non-PHPdoc)
  * 
  * @see \Symfony\Component\Security\Core\Encoder\PasswordEncoderInterface::encodePassword()
  */
 public function encodePassword(Password $password)
 {
     $rounds = 60000;
     // incresed rounds for harder bruteforce
     $salt = "";
     if ($password->getId() != null && $password->getId() != "") {
         $salt = $this->getRandomeSalt(16 - strlen($password->getId()));
         $salt = $password->getId() . "=" . $salt;
     } else {
         $salt = 'main=' . $this->getRandomeSalt();
     }
     $hash = crypt($password->getPasswordPlain(), '$6$rounds=' . $rounds . '$' . $salt . '$');
     $password->setHash('{crypt}' . $hash);
     $password->setPasswordPlain(null);
 }
 /**
  * (non-PHPdoc)
  *
  * @see \Symfony\Component\Security\Core\Encoder\PasswordEncoderInterface::encodePassword()
  */
 public static function encodePassword(Password $password)
 {
     $rounds = 60000;
     // incresed rounds for harder bruteforce
     $salt = "";
     if ($password->getId() != null && $password->getId() != "") {
         $salt = self::getRandomeSalt(16 - strlen($password->getId()));
         $salt = $password->getId() . ($password->isMasterPassword() ? '+' : '=') . $salt;
     } else {
         $salt = 'default=' . self::getRandomeSalt();
     }
     $hash = crypt($password->getPasswordPlain(), '$6$rounds=' . $rounds . '$' . $salt . '$');
     $password->setHash('{crypt}' . $hash);
     $password->setPasswordPlain(null);
     $password->setEncoder(CryptEncoder::class);
 }
 /**
  *
  * @param Password $password
  * @return Service
  */
 public function removePassword(Password $password)
 {
     if (!isset($this->passwords[$password->getId()])) {
         return $this;
     }
     $this->getAttributes()->get('userpassword')->removeElement($this->passwords[$password->getId()]->getAttribute());
     unset($this->passwords[$password->getId()]);
     return $this;
 }