Je crois que CakePHP utilise la fonction hash
à l'intérieur lib\Cake\Utility\Security.php
pour obtenir les données hachurées de l'utilisateur et le comparer avec le hachage stocké dans le champ Mot de passe:
https://github.com/cakephp/cakephp/blob/master/lib/Cake/Utility/Security.php#L107
Je dirais aussi qu'il utilise habituellement la fonction sha1
de PHP par défaut qui utilise password
de l'utilisateur et la valeur Security.salt
(définie dans core.php) comme chaîne d'entrée. cet effet, vous pouvez faire quelque chose comme ça pour obtenir la valeur enregistrée sur le champ password
de la table users
:
sha1('cce93fda02c7f3ebf1g46c583589f1fd257e9d5d'. 'mypassword');
Ceci est la fonction complète de CakePHP qui fait usage de sha1
:
public static function hash($string, $type = null, $salt = false) {
if (empty($type)) {
$type = self::$hashType;
}
$type = strtolower($type);
if ($type === 'blowfish') {
return self::_crypt($string, $salt);
}
if ($salt) {
if (!is_string($salt)) {
$salt = Configure::read('Security.salt');
}
$string = $salt . $string;
}
if (!$type || $type === 'sha1') {
if (function_exists('sha1')) {
return sha1($string);
}
$type = 'sha256';
}
if ($type === 'sha256' && function_exists('mhash')) {
return bin2hex(mhash(MHASH_SHA256, $string));
}
if (function_exists('hash')) {
return hash($type, $string);
}
return md5($string);
}
Vous pouvez en lire plus à ce sujet dans CakePHP documentation.
A travaillé! Merci beaucoup. – Domas