Hola David,
He probado lo que dices y funciona. Más exactamente:
1. Aplico una función hash al password en el monitor MySQL, como
indicabas antes
update usuarios set password=md5(password) where id=1;
2. Luego, en el core.php, vacío el Security.salt:
Configure::write('Security.salt', '');
3. Finalmente, en el beforeFilter del controlador, indico el algoritmo
hash que quiero aplicar:
function beforeFilter(){
Security::setHash('md5');
}
Así funciona... y puedo entrar en la parte privada. Me ha servido este
enlace:
http://pjhile.com/changing-the-cakephp-auth-component-password-hash
Que también propone otra solución: extender la clase Auth y
sobreescribir AuthComponent::password ($password) function.
¡Gracias por vuestra ayuda y un saludo! A ver si en un momento de más
calma aclaramos esto de las funciones hash de Auth, jeje. A mí, con el
md5 de David y con este pequeño cambio me funciona. Pero he tenido que
vaciar el Security.salt... Un saludo. Jordi
On 20 nov, 09:56, "david hc" <
davi...@gmail.com> wrote:
> Perdón, le di a enviar sin querer...
> Te aseguro que yo guardo en MD5 las contraseñas y hago login con normalidad.
>
> 2008/11/19 José Lorenzo <
jose....@gmail.com>:
>
>
>
> > Lo de david no funciona porque cake no encripta con md5, sino sha1... ademas
> > le agrega al string de passord el string de Security.salt que se encuentra
> > en core.php
>
> > 2008/11/20 José Lorenzo <
jose....@gmail.com>
>
> >> No david, eso no va a funcionar: lo mejor que puedes hacer es:
>
> >> poner en beforeFilter de app_controller momentaneamente:
>
> >> $this->Auth->allow();
>
> >> Y cargar un nuevo usuario desde tu interfaz cakephp. Eso ya te guardara la
> >> clave encriptada como tiene que ser.
>
> >> Finalmente puedes quitar la linea de allow() del beforeFilter
>
> >> 2008/11/20 david hc <
davi...@gmail.com>
>
> >>> UPDATE tabla SET password = MD5(password) WHERE condiciones;
>
> >>> Con eso pasaras a md5 la contraseña actual.
>
> >>> :wq!
>
> >>> 2008/11/19 jordicakephp <
jordicake...@gmail.com>:
>
> >>> > Hola grupo,
>
> >>> > Finalmente creo haber implementado correctamente la autenticación con
> >>> > Auth pero no puedo acceder a la parte protegida del programa. Creo que
> >>> > esto pasa porque, si entendí bien, Auth aplica una función hash a la
> >>> > contraseña que introduce el usuario en el formulario. Yo inserté un
> >>> > usuario de pruebas y su contraseña directamente en el monitor MySQL y
> >>> > la contraseña no está encriptada, de forma que nunca coincidirán y por
> >>> > eso (creo) no puedo entrar en la parte privada. ¿Cómo puedo hacer para
> >>> > guardar la contraseña encriptada y que coincida con la función que le