{"id":130,"date":"2025-02-20T00:00:00","date_gmt":"2025-02-19T23:00:00","guid":{"rendered":"https:\/\/helloblog.io\/es\/wordpress-6-8-bcrypt-por-defecto-wp-password-bcrypt\/"},"modified":"2026-01-20T06:32:43","modified_gmt":"2026-01-20T05:32:43","slug":"wordpress-6-8-bcrypt-por-defecto-wp-password-bcrypt","status":"publish","type":"post","link":"https:\/\/helloblog.io\/es\/wordpress-6-8-bcrypt-por-defecto-wp-password-bcrypt\/","title":{"rendered":"WordPress 6.8 adopta bcrypt por defecto: qu\u00e9 hacer si usabas wp-password-bcrypt"},"content":{"rendered":"\n<p>Durante a\u00f1os, una de las cr\u00edticas recurrentes a WordPress en entornos m\u00e1s exigentes de seguridad ha sido su estrategia hist\u00f3rica de <em>password hashing<\/em> (c\u00f3mo se almacenan y verifican las contrase\u00f1as). La noticia importante es que, seg\u00fan el anuncio de Core, <strong>WordPress 6.8 pasar\u00e1 a usar bcrypt como m\u00e9todo por defecto para el hash de contrase\u00f1as<\/strong>. Esto eleva el nivel de seguridad base sin depender de plugins ni mu-plugins externos.<\/p>\n\n\n\n<p>En paralelo, el equipo de Roots ha comunicado que su paquete <code>wp-password-bcrypt<\/code> entra en fase de retirada (<em>sunsetting<\/em>): si tu sitio corre WordPress 6.8 o superior, el paquete deja de aportar valor, porque el propio Core ya cubre ese caso de uso.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Qu\u00e9 significa \u201cbcrypt por defecto\u201d en WordPress 6.8<\/h2>\n\n\n\n<p>bcrypt es un algoritmo de hashing dise\u00f1ado espec\u00edficamente para contrase\u00f1as. A diferencia de hashes r\u00e1pidos, bcrypt es intencionalmente costoso (computacionalmente) y suele incorporar <em>salt<\/em> y un factor de coste, lo que lo hace mucho m\u00e1s resistente a ataques por fuerza bruta y a escenarios de filtraci\u00f3n de bases de datos.<\/p>\n\n\n\n<p>El punto clave para desarrolladores es este: <strong>a partir de WordPress 6.8, el Core manejar\u00e1 el hashing y la verificaci\u00f3n de contrase\u00f1as con bcrypt cuando corresponda<\/strong>, sin que tengas que \u201cparchear\u201d la autenticaci\u00f3n con paquetes adicionales.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Por qu\u00e9 <code>wp-password-bcrypt<\/code> deja de ser necesario<\/h2>\n\n\n\n<p><code>wp-password-bcrypt<\/code> (de Roots) naci\u00f3 para resolver una carencia real: elevar el nivel de seguridad de contrase\u00f1as en WordPress antes de que el Core ofreciera una alternativa moderna y robusta. Era especialmente com\u00fan verlo en proyectos con Bedrock o setups gestionados por Composer, donde resulta natural incorporar este tipo de hardening como dependencia.<\/p>\n\n\n\n<p>Con WordPress 6.8 incorporando bcrypt en el propio Core, el paquete pasa a ser redundante. Mantenerlo instalado ya no mejora la seguridad (porque el Core ya lo hace) y, adem\u00e1s, a\u00f1ade superficie de mantenimiento innecesaria en tu cadena de dependencias.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Si tu sitio est\u00e1 en WordPress 6.8+: qu\u00e9 cambios debes hacer<\/h2>\n\n\n\n<p>Seg\u00fan Roots, si ejecutas <strong>WordPress 6.8 o posterior<\/strong>, puedes <strong>eliminar <code>wp-password-bcrypt<\/code> con seguridad<\/strong>. No hay migraci\u00f3n manual ni pasos especiales: <strong>las contrase\u00f1as existentes seguir\u00e1n funcionando<\/strong> y WordPress se encargar\u00e1 del proceso de forma transparente durante la autenticaci\u00f3n.<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n\n<li>Actualiza WordPress a 6.8 o superior (seg\u00fan tu proceso habitual de despliegue).<\/li>\n\n\n<li>Elimina la dependencia <code>roots\/wp-password-bcrypt<\/code> de tu <code>composer.json<\/code> y ejecuta <code>composer update<\/code> o <code>composer remove<\/code> (seg\u00fan tu flujo).<\/li>\n\n\n<li>Revisa tu repo por si ten\u00edas documentaci\u00f3n interna o scripts que asum\u00edan la existencia del paquete (por ejemplo, en playbooks de hardening).<\/li>\n\n\n<li>Verifica en staging que los inicios de sesi\u00f3n funcionan con usuarios existentes y que el flujo de reset de contrase\u00f1a no presenta problemas.<\/li>\n\n<\/ol>\n\n\n\n<div class=\"wp-block-group callout callout-info is-style-info is-layout-flow wp-block-group-is-layout-flow\" style=\"border-width:1px;border-radius:8px;padding-top:1rem;padding-right:1.5rem;padding-bottom:1rem;padding-left:1.5rem\">\n\n<h4 class=\"wp-block-heading callout-title\">Compatibilidad de contrase\u00f1as existentes<\/h4>\n\n\n<p>El mensaje de Roots es expl\u00edcito: al quitar <code>wp-password-bcrypt<\/code> en WordPress 6.8+, no necesitas migrar hashes ni forzar resets de contrase\u00f1a. WordPress Core mantendr\u00e1 la compatibilidad y gestionar\u00e1 el uso de bcrypt donde aplique.<\/p>\n\n<\/div>\n\n\n\n<h2 class=\"wp-block-heading\">Qu\u00e9 pasa con el paquete: estado y mantenimiento<\/h2>\n\n\n\n<p>Roots ha detallado tres medidas para reflejar este cambio de escenario:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n\n<li>Marcar <code>wp-password-bcrypt<\/code> como <strong>abandoned<\/strong> en Packagist.<\/li>\n\n\n<li>Eliminar referencias desde Bedrock y su documentaci\u00f3n asociada.<\/li>\n\n\n<li>Archivar el repositorio en GitHub.<\/li>\n\n<\/ul>\n\n\n\n<p>En la pr\u00e1ctica, esto es una se\u00f1al clara para equipos que mantienen stacks con Composer: <strong>planifica la retirada del paquete<\/strong> si tu baseline ya contempla WordPress 6.8+.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">C\u00f3mo enfocar la transici\u00f3n en proyectos con Bedrock<\/h2>\n\n\n\n<p>En proyectos basados en Bedrock, donde Composer es el \u201ccentro de gravedad\u201d del proyecto, es habitual tener dependencias de seguridad bien justificadas. Esta es una buena oportunidad para hacer limpieza: si WordPress Core ya ofrece bcrypt, el paquete se convierte en deuda t\u00e9cnica.<\/p>\n\n\n\n<p>A nivel operativo, lo relevante no es solo quitar la dependencia, sino tambi\u00e9n <strong>alinear la documentaci\u00f3n del proyecto<\/strong> (README, runbooks de mantenimiento, auditor\u00edas internas) para que nadie intente reinstalarlo por inercia en futuras tareas de hardening.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Resumen para desarrolladores<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n\n<li>WordPress 6.8, seg\u00fan el anuncio de Core, adopta <strong>bcrypt<\/strong> como m\u00e9todo de hashing de contrase\u00f1as por defecto.<\/li>\n\n\n<li>Si ya est\u00e1s en 6.8+, <strong>puedes eliminar <code>wp-password-bcrypt<\/code><\/strong> sin migraciones ni resets de contrase\u00f1a.<\/li>\n\n\n<li>Roots retirar\u00e1 el paquete: <strong>abandoned en Packagist<\/strong>, sin referencias en Bedrock y repo archivado.<\/li>\n\n\n<li>Menos dependencias, menos mantenimiento: la mejora pasa a ser parte del est\u00e1ndar de WordPress.<\/li>\n\n<\/ul>\n\n\n<div class=\"references-section\">\n                <h2>Referencias \/ Fuentes<\/h2>\n                <ul class=\"references-list\"><li><a href=\"https:\/\/roots.io\/sunsetting-wp-password-bcrypt-with-wordpress-6-8\/\" target=\"_blank\" rel=\"noopener noreferrer\">Sunsetting wp-password-bcrypt with WordPress 6.8<\/a><\/li><li><a href=\"https:\/\/make.wordpress.org\/core\/2025\/02\/17\/wordpress-6-8-will-use-bcrypt-for-password-hashing\/\" target=\"_blank\" rel=\"noopener noreferrer\">WordPress 6.8 will use bcrypt for password hashing<\/a><\/li><li><a href=\"https:\/\/github.com\/roots\/wp-password-bcrypt\" target=\"_blank\" rel=\"noopener noreferrer\">wp-password-bcrypt<\/a><\/li><li><a href=\"https:\/\/github.com\/roots\/bedrock\" target=\"_blank\" rel=\"noopener noreferrer\">Bedrock<\/a><\/li><\/ul>\n            <\/div>","protected":false},"excerpt":{"rendered":"<p>WordPress 6.8 mejora la seguridad de autenticaci\u00f3n incorporando bcrypt como hash de contrase\u00f1as por defecto. Si en tu stack usabas `wp-password-bcrypt`, toca simplificar: ya no es necesario.<\/p>\n","protected":false},"author":16,"featured_media":129,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[36],"tags":[65,64,66,11,10],"class_list":["post-130","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-ecosistema-wordpress","tag-autenticacion","tag-bcrypt","tag-bedrock","tag-seguridad","tag-wordpress"],"_links":{"self":[{"href":"https:\/\/helloblog.io\/es\/wp-json\/wp\/v2\/posts\/130","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/helloblog.io\/es\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/helloblog.io\/es\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/helloblog.io\/es\/wp-json\/wp\/v2\/users\/16"}],"replies":[{"embeddable":true,"href":"https:\/\/helloblog.io\/es\/wp-json\/wp\/v2\/comments?post=130"}],"version-history":[{"count":1,"href":"https:\/\/helloblog.io\/es\/wp-json\/wp\/v2\/posts\/130\/revisions"}],"predecessor-version":[{"id":153,"href":"https:\/\/helloblog.io\/es\/wp-json\/wp\/v2\/posts\/130\/revisions\/153"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/helloblog.io\/es\/wp-json\/wp\/v2\/media\/129"}],"wp:attachment":[{"href":"https:\/\/helloblog.io\/es\/wp-json\/wp\/v2\/media?parent=130"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/helloblog.io\/es\/wp-json\/wp\/v2\/categories?post=130"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/helloblog.io\/es\/wp-json\/wp\/v2\/tags?post=130"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}