{"id":3709,"date":"2026-07-18T12:42:33","date_gmt":"2026-07-18T10:42:33","guid":{"rendered":"https:\/\/mantenimientoweb.pro\/blog\/como-recuperar-una-contrasena-de-superadministrador-olvidada-en-prestashop\/"},"modified":"2026-07-18T12:42:35","modified_gmt":"2026-07-18T10:42:35","slug":"como-recuperar-una-contrasena-de-superadministrador-olvidada-en-prestashop","status":"publish","type":"post","link":"https:\/\/mantenimientoweb.pro\/blog\/como-recuperar-una-contrasena-de-superadministrador-olvidada-en-prestashop\/","title":{"rendered":"\u00bfC\u00f3mo recuperar una contrase\u00f1a de superadministrador olvidada en PrestaShop?"},"content":{"rendered":"<article>\n<p>  \u00bfC\u00f3mo recuperar una contrase\u00f1a de superadministrador olvidada en PrestaShop? \ud83d\udd10<\/p>\n<p>Olvidar la contrase\u00f1a de superadministrador en PrestaShop tiene algo de escena teatral: la tienda est\u00e1 ah\u00ed, los pedidos quiz\u00e1 siguen entrando, el cat\u00e1logo respira, los clientes navegan\u2026 y usted, propietario leg\u00edtimo del castillo, se queda fuera mirando la puerta como si fuera un turista. La tecnolog\u00eda, siempre tan servicial, decide recordarnos que una cadena de caracteres puede pesar m\u00e1s que una llave de hierro.<\/p>\n<p>La buena noticia: en la mayor\u00eda de los casos no se \u201crecupera\u201d la contrase\u00f1a antigua, sino que se <strong>restablece<\/strong>. Y esto no es un matiz menor. PrestaShop almacena las contrase\u00f1as mediante hashes, no como texto legible. Es decir, el sistema no sabe cu\u00e1l era su contrase\u00f1a; solo sabe reconocerla cuando se introduce correctamente. Como un perro fiel que no entiende su nombre escrito, pero reconoce la voz.<\/p>\n<p>Esta gu\u00eda explica, con rigor y sentido pr\u00e1ctico, c\u00f3mo recuperar el acceso al <strong>Back Office de PrestaShop<\/strong> cuando se ha olvidado la contrase\u00f1a del <strong>superadministrador<\/strong>. Veremos m\u00e9todos seguros desde el propio panel de administraci\u00f3n, desde la base de datos con phpMyAdmin, mediante SQL y, cuando conviene hacerlo con m\u00e1s pulcritud, usando un peque\u00f1o script que aprovecha las clases internas de PrestaShop.<\/p>\n<p>    <strong>Antes de tocar nada:<\/strong> haga una copia de seguridad de la base de datos. S\u00ed, incluso si \u201csolo va a cambiar una contrase\u00f1a\u201d. Muchas tragedias digitales empezaron con esa frase tan inocente. \ud83e\uddef<\/p>\n<h2>Qu\u00e9 significa ser superadministrador en PrestaShop \ud83e\udded<\/h2>\n<p>En PrestaShop, los usuarios que acceden al Back Office se guardan normalmente en la tabla <code>ps_employee<\/code>, aunque el prefijo <code>ps_<\/code> puede variar seg\u00fan la instalaci\u00f3n. El perfil de <strong>SuperAdmin<\/strong> suele corresponder al <code>id_profile = 1<\/code>. Ese usuario tiene acceso total: m\u00f3dulos, pedidos, clientes, cat\u00e1logo, empleados, configuraci\u00f3n, transportistas, pagos y, en general, a las entra\u00f1as de la tienda.<\/p>\n<p>La diferencia entre un empleado limitado y un superadministrador es la diferencia entre mirar el escaparate y tener las llaves del almac\u00e9n. Uno ve; el otro decide. Por eso conviene tratar este procedimiento como una operaci\u00f3n sensible, no como una simple molestia administrativa.<\/p>\n<p>Dependiendo de la versi\u00f3n, PrestaShop puede usar distintos mecanismos de hash para las contrase\u00f1as. Las versiones antiguas trabajaban con hashes basados en <code>_COOKIE_KEY_<\/code> y MD5; las versiones modernas han ido incorporando sistemas m\u00e1s robustos mediante funciones y servicios internos. Esa transici\u00f3n \u2014de lo viejo a lo nuevo, de la cerradura simple al cerrojo reforzado\u2014 explica por qu\u00e9 algunos tutoriales de Internet funcionan en una tienda antigua y fallan elegantemente en otra m\u00e1s reciente. Elegantemente, claro, como falla una persiana atascada un lunes por la ma\u00f1ana.<\/p>\n<h2>Antes de empezar: identifique versi\u00f3n, prefijo y acceso disponible \ud83d\udd0e<\/h2>\n<p>Antes de elegir el m\u00e9todo, responda tres preguntas:<\/p>\n<ul>\n<li><strong>\u00bfTiene acceso al correo del empleado administrador?<\/strong> Si s\u00ed, use el restablecimiento normal del Back Office.<\/li>\n<li><strong>\u00bfTiene acceso a la base de datos?<\/strong> Por ejemplo, mediante phpMyAdmin, Adminer, DBeaver o consola MySQL.<\/li>\n<li><strong>\u00bfTiene acceso por FTP, SFTP o SSH?<\/strong> Esto permite usar un script de rescate m\u00e1s compatible con versiones modernas.<\/li>\n<\/ul>\n<p>Tambi\u00e9n necesitar\u00e1 conocer el prefijo de tablas. Aunque muchos ejemplos usan <code>ps_employee<\/code>, su tienda podr\u00eda usar <code>prst_employee<\/code>, <code>shop_employee<\/code> o cualquier otro prefijo elegido durante la instalaci\u00f3n.<\/p>\n<h3>D\u00f3nde encontrar el prefijo de tablas<\/h3>\n<table>\n<thead>\n<tr>\n<th>Versi\u00f3n aproximada<\/th>\n<th>Archivo habitual<\/th>\n<th>Dato a buscar<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>PrestaShop 1.6<\/td>\n<td><code>\/config\/settings.inc.php<\/code><\/td>\n<td><code>_DB_PREFIX_<\/code> y <code>_COOKIE_KEY_<\/code><\/td>\n<\/tr>\n<tr>\n<td>PrestaShop 1.7, 8 y superiores<\/td>\n<td><code>\/app\/config\/parameters.php<\/code><\/td>\n<td><code>database_prefix<\/code> y <code>cookie_key<\/code><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>    <strong>Importante:<\/strong> el nombre de la carpeta de administraci\u00f3n suele estar renombrado por seguridad, por ejemplo <code>\/admin784xk<\/code>. Si no recuerda la URL del Back Office, revise las carpetas del servidor por FTP\/SFTP.<\/p>\n<h2>M\u00e9todo 1: restablecer la contrase\u00f1a desde el Back Office \u2709\ufe0f<\/h2>\n<p>El camino m\u00e1s limpio, menos invasivo y m\u00e1s recomendable es usar la opci\u00f3n nativa de PrestaShop:<\/p>\n<ol>\n<li>Acceda a la URL de administraci\u00f3n, por ejemplo: <code>https:\/\/www.sutienda.com\/adminXXXX\/<\/code>.<\/li>\n<li>Haga clic en <strong>\u201cOlvid\u00e9 mi contrase\u00f1a\u201d<\/strong> o una opci\u00f3n similar.<\/li>\n<li>Introduzca el correo electr\u00f3nico asociado al empleado administrador.<\/li>\n<li>Revise la bandeja de entrada y tambi\u00e9n spam, promociones o cuarentena del servidor.<\/li>\n<li>Siga el enlace de recuperaci\u00f3n y defina una nueva contrase\u00f1a segura.<\/li>\n<\/ol>\n<p>Este m\u00e9todo depende de que el correo est\u00e9 bien configurado. Si PrestaShop no puede enviar emails porque el SMTP est\u00e1 mal, porque el hosting bloquea la funci\u00f3n <code>mail()<\/code> o porque el dominio tiene registros SPF\/DKIM rotos, el sistema har\u00e1 lo que tantos sistemas hacen: prometer silencio con cara de eficiencia.<\/p>\n<h3>Qu\u00e9 revisar si no llega el email de recuperaci\u00f3n<\/h3>\n<ul>\n<li>Configuraci\u00f3n de correo en <strong>Par\u00e1metros avanzados &gt; Correo electr\u00f3nico<\/strong>, si a\u00fan tiene acceso con otro usuario.<\/li>\n<li>Registros SPF, DKIM y DMARC del dominio.<\/li>\n<li>Carpeta de spam.<\/li>\n<li>Logs del servidor o del proveedor SMTP.<\/li>\n<li>Que el empleado est\u00e9 activo en la tabla <code>employee<\/code>.<\/li>\n<li>Que la direcci\u00f3n email sea exactamente la asociada al usuario administrador.<\/li>\n<\/ul>\n<p>Si este m\u00e9todo funciona, no siga tocando la base de datos. La sobriedad tambi\u00e9n es una forma de inteligencia t\u00e9cnica.<\/p>\n<h2>M\u00e9todo 2: cambiar el email del superadministrador en la base de datos y usar recuperaci\u00f3n \ud83d\udcec<\/h2>\n<p>Este es uno de los procedimientos m\u00e1s seguros cuando no tiene acceso al correo antiguo, pero s\u00ed puede entrar en phpMyAdmin o en la base de datos. La idea es sencilla: no se fuerza una contrase\u00f1a desde fuera; se cambia el correo del empleado y luego se usa el mecanismo oficial de recuperaci\u00f3n.<\/p>\n<h3>1. Localice el empleado administrador<\/h3>\n<p>En phpMyAdmin, abra la base de datos de PrestaShop y ejecute una consulta como esta, sustituyendo <code>ps_<\/code> por el prefijo real de su instalaci\u00f3n:<\/p>\n<pre><code>SELECT id_employee, firstname, lastname, email, active, id_profile, last_passwd_gen\nFROM ps_employee\nORDER BY id_employee;<\/code><\/pre>\n<p>Si quiere localizar espec\u00edficamente a los perfiles de superadministrador:<\/p>\n<pre><code>SELECT e.id_employee, e.firstname, e.lastname, e.email, e.active, e.id_profile\nFROM ps_employee e\nWHERE e.id_profile = 1;<\/code><\/pre>\n<p>En una instalaci\u00f3n est\u00e1ndar, <code>id_profile = 1<\/code> suele ser el perfil de SuperAdmin. Aun as\u00ed, si la tienda ha sido muy personalizada o migrada varias veces, conviene revisar tambi\u00e9n las tablas de perfiles.<\/p>\n<h3>2. Cambie el email del empleado<\/h3>\n<p>Una vez identificado el <code>id_employee<\/code>, puede actualizar el correo:<\/p>\n<pre><code>UPDATE ps_employee\nSET email = 'nuevo-correo@dominio.com'\nWHERE id_employee = 1\nLIMIT 1;<\/code><\/pre>\n<p>Despu\u00e9s vuelva a la pantalla de acceso del Back Office y solicite el restablecimiento de contrase\u00f1a con ese nuevo correo.<\/p>\n<p>    <strong>Ventajas de este m\u00e9todo:<\/strong><\/p>\n<ul>\n<li>No necesita conocer el algoritmo exacto de hash usado por su versi\u00f3n.<\/li>\n<li>Usa el flujo nativo de PrestaShop.<\/li>\n<li>Reduce el riesgo de dejar una contrase\u00f1a mal cifrada.<\/li>\n<li>Permite recuperar acceso sin editar c\u00f3digo.<\/li>\n<\/ul>\n<h2>M\u00e9todo 3: restablecer contrase\u00f1a por SQL en instalaciones antiguas \ud83d\uddc4\ufe0f<\/h2>\n<p>Durante a\u00f1os, muchos administradores de PrestaShop recuperaban el acceso actualizando directamente el campo <code>passwd<\/code> de la tabla <code>employee<\/code>. En versiones antiguas, la contrase\u00f1a se generaba combinando la clave interna <code>_COOKIE_KEY_<\/code> con la nueva contrase\u00f1a, normalmente mediante MD5.<\/p>\n<p>Este m\u00e9todo puede ser \u00fatil en <strong>PrestaShop 1.6 y algunas instalaciones 1.7 heredadas<\/strong>. Pero en PrestaShop 8 y versiones modernas no debe asumirse como universal. La seguridad evoluciona: lo que antes era llave maestra hoy puede ser una ganz\u00faa oxidada.<\/p>\n<h3>1. Obtenga la cookie_key<\/h3>\n<p>En PrestaShop 1.6, busque en:<\/p>\n<pre><code>\/config\/settings.inc.php<\/code><\/pre>\n<p>Encontrar\u00e1 una l\u00ednea similar a:<\/p>\n<pre><code>define('_COOKIE_KEY_', 'una_cadena_larga_de_caracteres');<\/code><\/pre>\n<p>En PrestaShop 1.7, 8 o superiores, suele estar en:<\/p>\n<pre><code>\/app\/config\/parameters.php<\/code><\/pre>\n<p>Busque:<\/p>\n<pre><code>'cookie_key' =&gt; 'una_cadena_larga_de_caracteres',<\/code><\/pre>\n<h3>2. Actualice la contrase\u00f1a<\/h3>\n<p>Use una contrase\u00f1a nueva, fuerte y temporal. Por ejemplo, una frase larga con s\u00edmbolos y n\u00fameros. No use <code>admin123<\/code>, <code>123456<\/code> ni el nombre de la tienda. La comodidad es dulce, s\u00ed, pero a veces sabe a incendio.<\/p>\n<pre><code>UPDATE ps_employee\nSET passwd = MD5(CONCAT('PEGUE_AQUI_SU_COOKIE_KEY', 'NuevaContrase\u00f1aTemporal_2026!')),\n    last_passwd_gen = NOW(),\n    active = 1\nWHERE id_employee = 1\nLIMIT 1;<\/code><\/pre>\n<p>Si su tabla contiene campos como <code>reset_password_token<\/code> o <code>reset_password_validity<\/code>, puede limpiarlos si existe alg\u00fan bloqueo relacionado con tokens antiguos:<\/p>\n<pre><code>UPDATE ps_employee\nSET reset_password_token = NULL,\n    reset_password_validity = NULL\nWHERE id_employee = 1\nLIMIT 1;<\/code><\/pre>\n<p>    <strong>Precauci\u00f3n:<\/strong> no todas las versiones tienen las mismas columnas. Si MySQL devuelve un error indicando que una columna no existe, no insista: adapte la consulta a su estructura real. La base de datos no perdona la poes\u00eda mal escrita.<\/p>\n<h3>3. Entre al Back Office y cambie de nuevo la contrase\u00f1a<\/h3>\n<p>Si el acceso funciona, entre inmediatamente en el Back Office y cambie la contrase\u00f1a desde el perfil del empleado. Esto permite que PrestaShop la guarde usando el mecanismo correcto de su versi\u00f3n actual.<\/p>\n<h2>M\u00e9todo 4: restablecer la contrase\u00f1a con un script seguro por consola \u2699\ufe0f<\/h2>\n<p>Cuando se trabaja con PrestaShop moderno, una forma m\u00e1s elegante y compatible consiste en usar las propias clases de la aplicaci\u00f3n para generar el hash de contrase\u00f1a. Es como pedirle al cerrajero de la casa que haga la llave, en lugar de limarla a oscuras en el garaje.<\/p>\n<p>Este m\u00e9todo requiere acceso por SSH o terminal del hosting. Si no lo tiene, p\u00eddalo al proveedor. Muchos paneles como cPanel, Plesk o herramientas administradas ofrecen una terminal web.<\/p>\n<h3>1. Cree un archivo temporal en la ra\u00edz de PrestaShop<\/h3>\n<p>Nombre sugerido:<\/p>\n<pre><code>rescate-empleado.php<\/code><\/pre>\n<p>Contenido:<\/p>\n<pre><code>&lt;?php\n\nif (PHP_SAPI !== 'cli') {\n    http_response_code(403);\n    exit('Este script solo debe ejecutarse por consola.');\n}\n\nif ($argc &lt; 3) {\n    echo \"Uso: php rescate-empleado.php ID_EMPLEADO 'NuevaContrase\u00f1aSegura'\\n\";\n    exit(1);\n}\n\n$idEmployee = (int) $argv[1];\n$newPassword = (string) $argv[2];\n\nrequire_once __DIR__ . '\/config\/config.inc.php';\n\n$employee = new Employee($idEmployee);\n\nif (!Validate::isLoadedObject($employee)) {\n    echo \"No se encontr\u00f3 el empleado con ID: {$idEmployee}\\n\";\n    exit(1);\n}\n\nif (method_exists('Employee', 'hashPassword')) {\n    $employee-&gt;passwd = Employee::hashPassword($newPassword);\n} elseif (method_exists('Tools', 'hash')) {\n    $employee-&gt;passwd = Tools::hash($newPassword);\n} else {\n    $employee-&gt;passwd = Tools::encrypt($newPassword);\n}\n\n$employee-&gt;active = 1;\n$employee-&gt;last_passwd_gen = date('Y-m-d H:i:s');\n\nif ($employee-&gt;update()) {\n    echo \"Contrase\u00f1a actualizada para: {$employee-&gt;email}\\n\";\n    echo \"Elimine este archivo inmediatamente.\\n\";\n    exit(0);\n}\n\necho \"No se pudo actualizar la contrase\u00f1a.\\n\";\nexit(1);<\/code><\/pre>\n<h3>2. Ejec\u00fatelo por SSH<\/h3>\n<p>Desde la ra\u00edz de la tienda:<\/p>\n<pre><code>php rescate-empleado.php 1 'NuevaContrase\u00f1aTemporal_2026!'<\/code><\/pre>\n<p>Sustituya <code>1<\/code> por el <code>id_employee<\/code> correcto. Si no lo conoce, cons\u00faltelo antes en la tabla <code>ps_employee<\/code>.<\/p>\n<h3>3. Elimine el archivo<\/h3>\n<p>Este paso no es decorativo. Borre el archivo inmediatamente:<\/p>\n<pre><code>rm rescate-empleado.php<\/code><\/pre>\n<p>Luego acceda al Back Office, cambie la contrase\u00f1a una vez m\u00e1s desde la interfaz y revise los empleados activos.<\/p>\n<p>    <strong>No deje scripts de rescate en el servidor.<\/strong> Un archivo temporal olvidado puede convertirse en una puerta trasera involuntaria. La historia de la seguridad web est\u00e1 llena de \u201csolo era para probar\u201d.<\/p>\n<h2>M\u00e9todo 5: crear un nuevo superadministrador, solo si es imprescindible \ud83e\uddd1\u200d\ud83d\udcbc<\/h2>\n<p>Crear un nuevo empleado con perfil SuperAdmin directamente en la base de datos es posible, pero no es mi primera recomendaci\u00f3n. Las columnas requeridas pueden variar entre versiones, m\u00f3dulos, migraciones y personalizaciones. Adem\u00e1s, un empleado no es solo un email y una contrase\u00f1a: puede tener permisos, idioma, estado, fechas, tokens y v\u00ednculos internos.<\/p>\n<p>Si todav\u00eda existe un empleado administrador v\u00e1lido, es m\u00e1s seguro <strong>actualizar ese usuario<\/strong> que insertar uno nuevo a mano. Crear registros manualmente en PrestaShop sin usar sus clases internas puede dejar datos incompletos. Y los datos incompletos son como baldosas flojas: no siempre se ven, pero tarde o temprano alguien tropieza.<\/p>\n<p>Si necesita crear un superadministrador porque todos los empleados fueron eliminados o est\u00e1n da\u00f1ados, lo m\u00e1s prudente es hacerlo mediante un script que cargue PrestaShop y use la clase <code>Employee<\/code>. Aun as\u00ed, en entornos cr\u00edticos conviene que lo haga un desarrollador con acceso a logs y copia de seguridad.<\/p>\n<h2>C\u00f3mo saber si el problema no es realmente la contrase\u00f1a \ud83d\udd75\ufe0f<\/h2>\n<p>A veces la contrase\u00f1a es inocente. El usuario la escribe bien, pero PrestaShop no deja entrar por otro motivo. Antes de culpar a la memoria \u2014esa biblioteca con goteras\u2014 revise estos escenarios:<\/p>\n<ul>\n<li><strong>Empleado desactivado:<\/strong> en <code>ps_employee<\/code>, el campo <code>active<\/code> debe estar en <code>1<\/code>.<\/li>\n<li><strong>Email incorrecto:<\/strong> puede haber un espacio, una direcci\u00f3n antigua o un dominio mal escrito.<\/li>\n<li><strong>Carpeta admin equivocada:<\/strong> quiz\u00e1 intenta acceder a una ruta antigua tras una migraci\u00f3n.<\/li>\n<li><strong>Cookies o cach\u00e9 del navegador:<\/strong> pruebe en modo inc\u00f3gnito o en otro navegador.<\/li>\n<li><strong>HTTPS mal configurado:<\/strong> errores de redirecci\u00f3n pueden impedir sesiones estables.<\/li>\n<li><strong>Tabla corrupta o migraci\u00f3n incompleta:<\/strong> especialmente despu\u00e9s de mover la tienda de servidor.<\/li>\n<li><strong>M\u00f3dulo de seguridad o firewall:<\/strong> puede bloquear IPs tras varios intentos fallidos.<\/li>\n<li><strong>Espacio en disco lleno:<\/strong> s\u00ed, tambi\u00e9n pasa; y cuando pasa, la tienda se comporta como un animal cansado.<\/li>\n<\/ul>\n<h2>Consultas \u00fatiles para revisar empleados y perfiles \ud83e\uddf0<\/h2>\n<p>Estas consultas ayudan a diagnosticar el estado de los empleados del Back Office. Recuerde cambiar <code>ps_<\/code> por el prefijo real.<\/p>\n<h3>Listar empleados<\/h3>\n<pre><code>SELECT id_employee, firstname, lastname, email, active, id_profile, last_passwd_gen\nFROM ps_employee\nORDER BY id_employee;<\/code><\/pre>\n<h3>Activar un empleado<\/h3>\n<pre><code>UPDATE ps_employee\nSET active = 1\nWHERE id_employee = 1\nLIMIT 1;<\/code><\/pre>\n<h3>Ver perfiles disponibles<\/h3>\n<pre><code>SELECT p.id_profile, pl.name\nFROM ps_profile p\nLEFT JOIN ps_profile_lang pl ON p.id_profile = pl.id_profile\nORDER BY p.id_profile;<\/code><\/pre>\n<h3>Asignar perfil de superadministrador<\/h3>\n<pre><code>UPDATE ps_employee\nSET id_profile = 1\nWHERE id_employee = 1\nLIMIT 1;<\/code><\/pre>\n<p>    <strong>Cuidado:<\/strong> asignar <code>id_profile = 1<\/code> otorga privilegios totales en una instalaci\u00f3n est\u00e1ndar. No lo haga con cuentas compartidas, correos gen\u00e9ricos o usuarios cuyo origen no est\u00e9 claro.<\/p>\n<h2>Diferencias por versi\u00f3n de PrestaShop \ud83d\udccc<\/h2>\n<p>PrestaShop ha cambiado mucho desde las ramas 1.5 y 1.6 hasta PrestaShop 8. La administraci\u00f3n moderna convive con herencias del pasado, como una casa reformada que a\u00fan conserva una puerta antigua en el pasillo.<\/p>\n<table>\n<thead>\n<tr>\n<th>Versi\u00f3n<\/th>\n<th>Ruta de configuraci\u00f3n habitual<\/th>\n<th>M\u00e9todo recomendado<\/th>\n<th>Comentario<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>PrestaShop 1.6<\/td>\n<td><code>\/config\/settings.inc.php<\/code><\/td>\n<td>Recuperaci\u00f3n por email o SQL con <code>_COOKIE_KEY_<\/code><\/td>\n<td>El m\u00e9todo MD5 heredado suele funcionar, aunque sigue siendo recomendable cambiar luego la contrase\u00f1a desde el Back Office.<\/td>\n<\/tr>\n<tr>\n<td>PrestaShop 1.7<\/td>\n<td><code>\/app\/config\/parameters.php<\/code><\/td>\n<td>Email, cambio de email en DB o script con clases internas<\/td>\n<td>Algunas instalaciones aceptan hashes heredados, otras dependen de mecanismos m\u00e1s modernos.<\/td>\n<\/tr>\n<tr>\n<td>PrestaShop 8<\/td>\n<td><code>\/app\/config\/parameters.php<\/code><\/td>\n<td>Recuperaci\u00f3n nativa o script por consola<\/td>\n<td>Evite confiar ciegamente en recetas antiguas de MD5. Use el sistema interno cuando sea posible.<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h2>Despu\u00e9s de recuperar el acceso: medidas obligatorias de seguridad \ud83d\udee1\ufe0f<\/h2>\n<p>Recuperar el acceso es solo la mitad del trabajo. La otra mitad consiste en asegurarse de que nadie m\u00e1s lo recupere por usted.<\/p>\n<p>    <strong>Lista de revisi\u00f3n tras entrar al Back Office:<\/strong><\/p>\n<ul>\n<li>Cambie la contrase\u00f1a temporal por una contrase\u00f1a larga y \u00fanica.<\/li>\n<li>Revise todos los empleados en <strong>Par\u00e1metros avanzados &gt; Equipo<\/strong> o secci\u00f3n equivalente.<\/li>\n<li>Desactive usuarios antiguos, desconocidos o innecesarios.<\/li>\n<li>Compruebe que solo las personas adecuadas tengan perfil SuperAdmin.<\/li>\n<li>Active autenticaci\u00f3n en dos factores si usa un m\u00f3dulo fiable para ello.<\/li>\n<li>Revise m\u00f3dulos instalados recientemente o de origen dudoso.<\/li>\n<li>Actualice PrestaShop, m\u00f3dulos y tema si hay parches de seguridad pendientes.<\/li>\n<li>Verifique permisos de archivos y carpetas.<\/li>\n<li>Elimine scripts temporales usados para el rescate.<\/li>\n<li>Revise logs del servidor, especialmente accesos al Back Office.<\/li>\n<li>Configure correctamente el env\u00edo de emails para futuras recuperaciones.<\/li>\n<\/ul>\n<p>Una breve digresi\u00f3n: una vez vi una tienda perder el acceso administrativo porque el \u00fanico superadministrador usaba un correo de un empleado que ya no trabajaba all\u00ed. El dominio segu\u00eda activo, la tienda segu\u00eda vendiendo, pero la cuenta de correo hab\u00eda sido eliminada. Nadie pens\u00f3 en eso. Es curioso: vigilamos pasarelas de pago, firewalls y certificados SSL, pero a veces toda la continuidad del negocio cuelga de un buz\u00f3n abandonado, como una l\u00e1mpara vieja sostenida por un cable pelado.<\/p>\n<h2>Buenas pr\u00e1cticas para no volver a quedar fuera \ud83d\udeaa<\/h2>\n<ul>\n<li><strong>Use al menos dos superadministradores reales<\/strong>, asignados a correos corporativos activos y controlados.<\/li>\n<li><strong>No comparta cuentas.<\/strong> Cada persona debe tener su propio usuario.<\/li>\n<li><strong>Guarde credenciales en un gestor de contrase\u00f1as<\/strong> como Bitwarden, 1Password, KeePass o similar.<\/li>\n<li><strong>Documente la URL del Back Office<\/strong> en un lugar seguro. No en un post-it pegado al monitor, por favor; el folclore de oficina tambi\u00e9n tiene l\u00edmites.<\/li>\n<li><strong>Configure SMTP profesional<\/strong> para que los emails de recuperaci\u00f3n funcionen.<\/li>\n<li><strong>Haga copias de seguridad peri\u00f3dicas<\/strong> de archivos y base de datos.<\/li>\n<li><strong>Restrinja el acceso al Back Office por IP<\/strong> si el equipo trabaja desde ubicaciones conocidas.<\/li>\n<li><strong>Audite permisos despu\u00e9s de cada cambio de personal<\/strong>.<\/li>\n<\/ul>\n<h2>Errores frecuentes al recuperar una contrase\u00f1a de PrestaShop \u26a0\ufe0f<\/h2>\n<h3>Usar el prefijo de tabla equivocado<\/h3>\n<p>Muchos tutoriales usan <code>ps_employee<\/code>, pero su tienda puede tener otro prefijo. Si la consulta no devuelve resultados, no significa necesariamente que la tabla no exista; quiz\u00e1 se llama distinto.<\/p>\n<h3>Copiar mal la cookie_key<\/h3>\n<p>Un espacio de m\u00e1s, una comilla omitida o un car\u00e1cter perdido bastan para que el hash no coincida. La precisi\u00f3n aqu\u00ed es quir\u00fargica.<\/p>\n<h3>Intentar ver la contrase\u00f1a antigua<\/h3>\n<p>No se puede. Y si alguien le promete \u201cdescifrarla\u201d como si fuera un truco de feria, desconf\u00ede. Los hashes seguros est\u00e1n dise\u00f1ados precisamente para no revelar la contrase\u00f1a original.<\/p>\n<h3>No borrar scripts temporales<\/h3>\n<p>Este error es m\u00e1s com\u00fan de lo que parece. Se sube un archivo de rescate, se recupera el acceso, suena el tel\u00e9fono, llega un pedido urgente\u2026 y el archivo queda ah\u00ed, esperando su momento como una ventana abierta en invierno.<\/p>\n<h3>No cambiar la contrase\u00f1a temporal<\/h3>\n<p>Una contrase\u00f1a creada durante una emergencia debe considerarse provisional. \u00dasela para entrar, luego c\u00e1mbiela por una definitiva y gu\u00e1rdela correctamente.<\/p>\n<h2>Preguntas frecuentes sobre recuperar contrase\u00f1a de superadministrador en PrestaShop \u2753<\/h2>\n<h3>\u00bfPuedo recuperar la contrase\u00f1a antigua del administrador?<\/h3>\n<p>No de forma normal ni recomendable. PrestaShop guarda hashes de contrase\u00f1a, no contrase\u00f1as legibles. Lo correcto es restablecerla.<\/p>\n<h3>\u00bfCu\u00e1l es el m\u00e9todo m\u00e1s seguro?<\/h3>\n<p>Primero, el restablecimiento desde el Back Office por email. Si no tiene acceso al correo, cambiar el email en la tabla <code>employee<\/code> y usar el flujo nativo. Para versiones modernas, el script por consola usando clases internas de PrestaShop es m\u00e1s fiable que forzar un hash manual.<\/p>\n<h3>\u00bfFunciona el m\u00e9todo de MD5 con cookie_key en PrestaShop 8?<\/h3>\n<p>No debe asumirse. Puede funcionar en tiendas con compatibilidad heredada, pero PrestaShop moderno utiliza mecanismos m\u00e1s robustos. Para PrestaShop 8, es preferible usar recuperaci\u00f3n por email o un script que invoque las funciones internas de la aplicaci\u00f3n.<\/p>\n<h3>\u00bfQu\u00e9 hago si no tengo acceso a phpMyAdmin ni SSH?<\/h3>\n<p>Contacte con el proveedor de hosting o con el responsable t\u00e9cnico del servidor. Sin acceso al correo, a la base de datos o al sistema de archivos, no hay una v\u00eda leg\u00edtima y segura para restablecer la cuenta.<\/p>\n<h3>\u00bfDebo poner la tienda en mantenimiento?<\/h3>\n<p>No siempre es necesario. Si solo cambia el email o la contrase\u00f1a de un empleado, puede hacerse sin interrumpir ventas. Pero si va a manipular archivos, revisar una posible intrusi\u00f3n o modificar datos sensibles, conviene trabajar con cautela e informar al equipo.<\/p>\n<h2>Una salida limpia, no una huida improvisada \u2705<\/h2>\n<p>Recuperar una contrase\u00f1a de superadministrador olvidada en PrestaShop no deber\u00eda convertirse en una expedici\u00f3n desesperada por foros antiguos y consultas copiadas al azar. Hay un orden sensato: primero el email, luego la base de datos con cambios m\u00ednimos, despu\u00e9s los m\u00e9todos t\u00e9cnicos m\u00e1s profundos si la versi\u00f3n lo exige.<\/p>\n<p>La paradoja es hermosa y un poco cruel: cuanto m\u00e1s segura es una tienda, menos dispuesta est\u00e1 a dejarle entrar por atajos. Y eso, aunque moleste en plena urgencia, es exactamente lo que queremos de una plataforma de comercio electr\u00f3nico. Una puerta que se abre para cualquiera no es una puerta; es una invitaci\u00f3n al desastre.<\/p>\n<p>As\u00ed que respire. Haga copia de seguridad. Identifique la versi\u00f3n. Localice el empleado. Cambie lo justo. Entre. Refuerce. Y deje preparado el terreno para que la pr\u00f3xima vez \u2014si la memoria vuelve a jugarle una mala pasada\u2014 la recuperaci\u00f3n sea una maniobra serena, no una noche de tormenta frente a phpMyAdmin. \ud83d\udd10<\/p>\n<p>  <script type=\"application\/ld+json\">\n  {\n    \"@context\": \"https:\/\/schema.org\",\n    \"@type\": \"FAQPage\",\n    \"mainEntity\": [\n      {\n        \"@type\": \"Question\",\n        \"name\": \"\u00bfPuedo recuperar la contrase\u00f1a antigua del administrador en PrestaShop?\",\n        \"acceptedAnswer\": {\n          \"@type\": \"Answer\",\n          \"text\": \"No. PrestaShop almacena hashes de contrase\u00f1a, no contrase\u00f1as en texto plano. Lo correcto es restablecer la contrase\u00f1a del superadministrador.\"\n        }\n      },\n      {\n        \"@type\": \"Question\",\n        \"name\": \"\u00bfCu\u00e1l es el m\u00e9todo m\u00e1s seguro para recuperar una contrase\u00f1a de superadministrador en PrestaShop?\",\n        \"acceptedAnswer\": {\n          \"@type\": \"Answer\",\n          \"text\": \"El m\u00e9todo m\u00e1s seguro es usar la recuperaci\u00f3n nativa por email desde el Back Office. Si no se tiene acceso al correo, se puede cambiar el email del empleado en la base de datos y luego usar el flujo oficial de restablecimiento.\"\n        }\n      },\n      {\n        \"@type\": \"Question\",\n        \"name\": \"\u00bfFunciona el m\u00e9todo de cookie_key y MD5 en PrestaShop 8?\",\n        \"acceptedAnswer\": {\n          \"@type\": \"Answer\",\n          \"text\": \"No debe asumirse. El m\u00e9todo con cookie_key y MD5 pertenece a instalaciones antiguas o heredadas. En PrestaShop 8 es preferible usar el sistema de recuperaci\u00f3n nativo o un script por consola que utilice las clases internas de PrestaShop.\"\n        }\n      },\n      {\n        \"@type\": \"Question\",\n        \"name\": \"\u00bfD\u00f3nde se guardan los empleados administradores en PrestaShop?\",\n        \"acceptedAnswer\": {\n          \"@type\": \"Answer\",\n          \"text\": \"Normalmente se guardan en la tabla employee de la base de datos, por ejemplo ps_employee si el prefijo es ps_. El superadministrador suele tener id_profile igual a 1 en instalaciones est\u00e1ndar.\"\n        }\n      }\n    ]\n  }\n  <\/script><\/p>\n<\/article>\n","protected":false},"excerpt":{"rendered":"<p>\u00bfC\u00f3mo recuperar una contrase\u00f1a de superadministrador olvidada en PrestaShop? \ud83d\udd10 Olvidar la contrase\u00f1a de superadministrador<\/p>\n","protected":false},"author":1,"featured_media":3708,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_seopress_titles_title":"","_seopress_titles_desc":"","_seopress_robots_index":"","_seopress_robots_follow":"","_seopress_robots_imageindex":"","_seopress_robots_snippet":"","_seopress_robots_primary_cat":"","_seopress_robots_breadcrumbs":"","_seopress_robots_freeze_modified_date":"","_seopress_robots_custom_modified_date":"","_seopress_robots_canonical":"","_seopress_social_fb_title":"","_seopress_social_fb_desc":"","_seopress_social_fb_img":"","_seopress_social_fb_img_attachment_id":0,"_seopress_social_fb_img_width":0,"_seopress_social_fb_img_height":0,"_seopress_social_twitter_title":"","_seopress_social_twitter_desc":"","_seopress_social_twitter_img":"","_seopress_social_twitter_img_attachment_id":0,"_seopress_social_twitter_img_width":0,"_seopress_social_twitter_img_height":0,"_seopress_redirections_value":"","_seopress_redirections_enabled":"","_seopress_redirections_enabled_regex":"","_seopress_redirections_logged_status":"","_seopress_redirections_param":"","_seopress_redirections_type":0,"_seopress_analysis_target_kw":"","_seopress_news_disabled":"","_seopress_video_disabled":"","_seopress_video":[],"_seopress_pro_schemas_manual":[],"_seopress_pro_rich_snippets_disable_all":"","_seopress_pro_rich_snippets_disable":[],"_seopress_pro_schemas":[],"footnotes":""},"categories":[2],"tags":[],"class_list":["post-3709","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-mantenimiento"],"_links":{"self":[{"href":"https:\/\/mantenimientoweb.pro\/blog\/wp-json\/wp\/v2\/posts\/3709","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/mantenimientoweb.pro\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/mantenimientoweb.pro\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/mantenimientoweb.pro\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/mantenimientoweb.pro\/blog\/wp-json\/wp\/v2\/comments?post=3709"}],"version-history":[{"count":1,"href":"https:\/\/mantenimientoweb.pro\/blog\/wp-json\/wp\/v2\/posts\/3709\/revisions"}],"predecessor-version":[{"id":3710,"href":"https:\/\/mantenimientoweb.pro\/blog\/wp-json\/wp\/v2\/posts\/3709\/revisions\/3710"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/mantenimientoweb.pro\/blog\/wp-json\/wp\/v2\/media\/3708"}],"wp:attachment":[{"href":"https:\/\/mantenimientoweb.pro\/blog\/wp-json\/wp\/v2\/media?parent=3709"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/mantenimientoweb.pro\/blog\/wp-json\/wp\/v2\/categories?post=3709"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/mantenimientoweb.pro\/blog\/wp-json\/wp\/v2\/tags?post=3709"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}