Estoy encontrando muy poca información sobre la conversión de una base de datos existente de contraseñas encriptadas a contraseñas hash. (Pude encontrar un poco más de información sobre la conversión en otra dirección, pero no fue de mucha ayuda.)Cambiar el formato de contraseña de cifrado a hash
Como la mayoría de la gente sabe, cambiar la configuración passwordFormat
en web.config solo afecta a los usuarios nuevos. Tengo una base de datos con un par de cientos de usuarios y me gustaría convertirlos para usar contraseñas hash sin cambiar esas contraseñas existentes.
¿Alguien más está familiarizado con cómo se podría abordar esto? Gracias por cualquier consejo.
Actualmente estoy tratando de actualizar las contraseñas de texto sin cifrar a las contraseñas encriptadas. Los quiero hash, pero el cliente no. De todos modos, esta solución parece prometedora. Muy elegante en su simplicidad. Espero que funcione. – mikesigs
Lo hice funcionar pero las advertencias eran demasiado difíciles de soportar. En primer lugar, no puede simplemente llamar a ChangePassword en el proveedor de hash porque debe proporcionar la contraseña existente (que intenta hacer hash para compararla con el valor de db que no es hash). Por lo tanto, debe llamar a ResetPassword para obtener una contraseña hash temporal para llamar a ChangePassword. El rendimiento es el asesino. Debe recuperar cada MembershipUser, luego llamar GetPassword, ResetPassword y ChangePassword para cada uno. ¡Más de 3 * N hits en el db! Lo envolví en una transacción y agotó rápidamente mi grupo de conexión. – mikesigs
Voy a investigar un procedimiento almacenado CLR para poder llamar a los mecanismos de cifrado del proveedor desde SQL. Voy a publicar de nuevo si eso funciona. – mikesigs