Si alguna vez tienes que pasar un proyecto de Drupal 7 a PhalconPHP una de las cosas que vas a necesitar será mantener las contraseñas de los usuarios de Drupal. Es cierto que puedes cambiarlos enviando un email al usuario para que cambie la password o mantener tu sistema propio para los nuevos usuarios y para los antiguos utilizar lo de Drupal. En nuestro caso haremos uso en todo el proyecto de las contraseñas de Drupal.

Para ello crearemos en el directorio APP una carpeta llamada classes (ya que haremos uso de las classes que tiene drupal para las contraseñas), ya dentro meteremos los siguientes archivos BootstrapClass.php y PasswordClass.php que se encuentran en la carpeta includes si no recuerdo mal.

En el fichero PasswordClass.php haremos uso de un namespace y llamaremos a BootstrapClass.php

namespace MiProyecto\Classes;
use MiProyecto\Classes\BootstrapClass;

Y para el fichero BootstrapClass.php crearemos el namespace.

namespace MiProyecto\Classes;

Lo siguiente será crear en nuestro config la ruta hacia classes para luego poder cargarla en el loader.php

'application' => [
        'classesDir'     => APP_PATH . '/classes/',
    ]
$loader
    ->registerNamespaces(
        [
            'MiProyecto\Classes' => $config->application->classesDir
        ]
    );

Y para utilizar las classes en algún controller o plugin:

use MiProyecto\Classes\PasswordClass;

Si queremos guardar una pass plana de por ejemplo un registro, en nuestra Action de un Controller utilizaremos:

$passwordClass = new PasswordClass();
 $usuario->password = $passwordClass->user_hash_password($this->request->getPost("password"))

Y si lo que queremos es comprobar la pass plana que nos meten:

$passwordClass = new PasswordClass();
if ($passwordClass->user_check_password($data['password'], $usuario->password)) {
 // ok
}

Y con esto solo tenemos que exportar las contraseñas de los usuarios de Drupal a nuestra tabla de usuarios para que funcione todo con el sistema de contraseñas de Drupal 7.