2017-02-28 2 views
-1

Speichern Krypta Hash-Sicherheit entschlüsseln:Wie Hash-Sicherheit in Phalcon

$usuario = new User(); 
$usuario->password = $this->security->hash($this->request->getPost("pass")); 
if (!$usuario->save()) { 
    foreach ($usuario->getMessages() as $message) { 
    $this->flash->error($message); 
    } 
    $this->dispatcher->forward([ 
     'controller' => "usuario", 
     'action' => 'new' 
    ]); 
    return; 
} 

jetzt, wie Hash-Sicherheit zu entschlüsseln, meine Form zu senden: Hinweis: undefinierter Zugang

$usuario = User::findFirstByid($iduser); 
$this->tag->setDefault("pass", $this->encryption->decrypt($usuario->password)); 

ich diese mit Eigenschaft Verschlüsselung in ...

+0

Sie können keine Hashes entschlüsseln. Per Definition ist Hash nur ein Weg. Auch dort gibt es keinen Service wie Verschlüsselung in Phalcon. – Juri

Antwort

0

Wie @Juri sagte Hashes sind nur eine Möglichkeit. Sie können jedoch encryptBase64() verwenden, was zwei Wege ist und Sie können es zurück decodieren. Sie es nicht für Passwörter verwenden, ist es für einige Daten verwenden Sie jemandem übergeben müssen und es zurück, wie api Token usw. erfahren ..

Hier ist, wie es einzurichten:

$di->setShared('crypt', function() use ($config) { 
    $crypt = new \Phalcon\Crypt(); 
    $crypt->setKey('i$4^&/:%[email protected]<@{(e=*!<7u|rI~0'); 
    return $crypt; 
}); 

Von mir erstellte Hilfsfunktionen können Sie direkt verwenden:

... 
... 

private static $cryptKey = 'i$4^&/:%[email protected]<@{(e=*!<7u|rI~0'; 

/** 
* Generate url safe encoded string 
* 
* @param string $string string to be encoded 
* @return encoded string 
*/ 
public static function encodeString($string) 
{ 
    $crypt = new \Phalcon\Crypt(); 
    return $crypt->encryptBase64($string, self::$cryptKey, true); 
} 

/** 
* Decode string generated with Common::encodeString() 
* 
* @param string $string Encoded string 
* @return decoded string 
*/ 
public static function decodeString($string) 
{ 
    $crypt = new \Phalcon\Crypt(); 
    return $crypt->decryptBase64($string, self::$cryptKey, true); 
}