{"id":146,"date":"2025-02-20T00:00:00","date_gmt":"2025-02-19T23:00:00","guid":{"rendered":"https:\/\/helloblog.io\/fr\/wordpress-6-8-bcrypt-retirer-wp-password-bcrypt\/"},"modified":"2026-01-20T06:32:41","modified_gmt":"2026-01-20T05:32:41","slug":"wordpress-6-8-bcrypt-retirer-wp-password-bcrypt","status":"publish","type":"post","link":"https:\/\/helloblog.io\/fr\/wordpress-6-8-bcrypt-retirer-wp-password-bcrypt\/","title":{"rendered":"WordPress 6.8 passe \u00e0 bcrypt : pourquoi tu peux retirer wp-password-bcrypt sans douleur"},"content":{"rendered":"\n<p>Pendant des ann\u00e9es, renforcer le stockage des mots de passe sur WordPress passait souvent par des solutions externes (plugins MU, packages Composer, overrides de fonctions). Avec WordPress 6.8, un cap important est franchi : <strong>bcrypt devient la m\u00e9thode de hash (hachage) par d\u00e9faut dans le core<\/strong>. Et \u00e7a change concr\u00e8tement la donne pour pas mal de stacks modernes, notamment celles bas\u00e9es sur Bedrock\/Composer.<\/p>\n\n\n\n<p>Dans l\u2019\u00e9cosyst\u00e8me Roots, \u00e7a se traduit par une d\u00e9cision logique : le package <strong><code>wp-password-bcrypt<\/code><\/strong> (qui apportait bcrypt avant que WordPress ne le fasse nativement) devient obsol\u00e8te \u00e0 partir de WordPress 6.8.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Rappel : bcrypt, c\u2019est quoi et pourquoi c\u2019est mieux ?<\/h2>\n\n\n\n<p>Un <em>hash<\/em> de mot de passe, ce n\u2019est pas un chiffrement r\u00e9versible : c\u2019est une empreinte calcul\u00e9e \u00e0 partir du mot de passe, utilis\u00e9e pour v\u00e9rifier une connexion sans jamais stocker le secret en clair. <strong>bcrypt<\/strong> est un algorithme de hash pens\u00e9 sp\u00e9cifiquement pour les mots de passe : il est volontairement co\u00fbteux (en temps CPU), ce qui complique fortement les attaques par force brute en cas de fuite de base de donn\u00e9es.<\/p>\n\n\n\n<p>Dans WordPress, le sujet est sensible parce que l\u2019authentification est au c\u0153ur de l\u2019admin, des APIs, et d\u2019une \u00e9norme surface d\u2019attaque (sites tr\u00e8s expos\u00e9s, bots, tentatives de login massives). Le fait que <strong>le core adopte bcrypt<\/strong> est donc une am\u00e9lioration de s\u00e9curit\u00e9 tr\u00e8s bienvenue.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Ce qui change avec WordPress 6.8<\/h2>\n\n\n\n<p>\u00c0 partir de WordPress 6.8 (et versions ult\u00e9rieures), <strong>tu n\u2019as plus besoin d\u2019ajouter bcrypt \u201cpar-dessus\u201d<\/strong> via un package ou un plugin : le core le g\u00e8re directement.<\/p>\n\n\n\n<p>La cons\u00e9quence la plus pratique : si ton site tourne en WordPress 6.8+, tu peux <strong>retirer <code>wp-password-bcrypt<\/code> en toute s\u00e9curit\u00e9<\/strong>. D\u2019apr\u00e8s l\u2019annonce de Roots, il n\u2019y a <strong>pas d\u2019\u00e9tape de migration<\/strong> \u00e0 pr\u00e9voir : les mots de passe existants continuent de fonctionner, et WordPress prend le relais de mani\u00e8re transparente pour l\u2019authentification (et utilise bcrypt quand applicable).<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">wp-password-bcrypt : statut et fin de vie c\u00f4t\u00e9 Roots<\/h2>\n\n\n\n<p>Roots a confirm\u00e9 que le package <code>wp-password-bcrypt<\/code> n\u2019a plus de raison d\u2019\u00eatre une fois bcrypt int\u00e9gr\u00e9 au core. Pour aligner l\u2019\u00e9cosyst\u00e8me, ils pr\u00e9voient :<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n\n<li>de marquer <code>wp-password-bcrypt<\/code> comme <strong>abandoned<\/strong> sur Packagist (signal standard c\u00f4t\u00e9 Composer)<\/li>\n\n\n<li>de supprimer les r\u00e9f\u00e9rences au package dans <strong>Bedrock<\/strong> et dans la documentation associ\u00e9e<\/li>\n\n\n<li>d\u2019<strong>archiver<\/strong> le d\u00e9p\u00f4t GitHub du projet<\/li>\n\n<\/ul>\n\n\n\n<p>En clair : si ton projet d\u00e9pend encore du package, c\u2019est le moment de planifier son retrait lors du passage \u00e0 WordPress 6.8, pour \u00e9viter de tra\u00eener une d\u00e9pendance inutile (et bient\u00f4t \u201cabandonn\u00e9e\u201d).<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Que faire sur un projet Bedrock\/Composer ?<\/h2>\n\n\n\n<p>Sur une base Bedrock, <code>wp-password-bcrypt<\/code> est typiquement une d\u00e9pendance Composer. La strat\u00e9gie est simple : <strong>v\u00e9rifier la version de WordPress<\/strong>, puis <strong>supprimer la d\u00e9pendance<\/strong> si tu es en 6.8+.<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n\n<li>Mettre \u00e0 jour WordPress vers 6.8 (ou s\u2019assurer que le d\u00e9ploiement cible est bien en 6.8+)<\/li>\n\n\n<li>Retirer <code>roots\/wp-password-bcrypt<\/code> de tes d\u00e9pendances<\/li>\n\n\n<li>D\u00e9ployer, puis valider un sc\u00e9nario de login (admin + \u00e9ventuellement utilisateurs front)<\/li>\n\n<\/ol>\n\n\n\n<div class=\"wp-block-group callout callout-warning is-style-warning 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\">Attention au timing<\/h4>\n\n\n<p>Si tu retires le package avant d\u2019\u00eatre effectivement en WordPress 6.8+, tu reviens au comportement de hash g\u00e9r\u00e9 par ta version actuelle de WordPress. Dans un contexte de prod, cale le retrait sur la m\u00eame release que la mise \u00e0 niveau WP.<\/p>\n\n<\/div>\n\n\n\n<h2 class=\"wp-block-heading\">Pourquoi c\u2019est une bonne nouvelle (m\u00eame si tu n\u2019utilisais pas Roots)<\/h2>\n\n\n\n<p>L\u2019int\u00e9r\u00eat d\u00e9passe largement Bedrock. Quand une am\u00e9lioration de s\u00e9curit\u00e9 devient <strong>native<\/strong> dans WordPress, elle se diffuse partout : h\u00e9bergements mutualis\u00e9s, sites \u201cclassiques\u201d sans Composer, vieux projets maintenus a minima\u2026 Bref, l\u2019upgrade de s\u00e9curit\u00e9 ne d\u00e9pend plus d\u2019un choix d\u2019architecture ou d\u2019un plugin en plus.<\/p>\n\n\n\n<p>Et c\u00f4t\u00e9 maintenance, \u00e7a r\u00e9duit aussi la complexit\u00e9 : moins de packages \u201cfondation\u201d, moins de pi\u00e8ces critiques ajout\u00e9es au runtime, moins de risques de compatibilit\u00e9 ou de support \u00e0 long terme.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">R\u00e9sum\u00e9 op\u00e9rationnel<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n\n<li>WordPress 6.8 utilise <strong>bcrypt<\/strong> par d\u00e9faut pour le hash des mots de passe.<\/li>\n\n\n<li>Si ton site est en <strong>6.8+<\/strong>, tu peux <strong>supprimer <code>wp-password-bcrypt<\/code><\/strong> sans migration et sans casser les mots de passe existants.<\/li>\n\n\n<li>Roots va marquer le package comme <strong>abandonn\u00e9<\/strong>, retirer sa mention de Bedrock\/docs et archiver le repo GitHub.<\/li>\n\n\n<li>Le bon r\u00e9flexe : synchroniser retrait du package et upgrade WordPress dans la m\u00eame fen\u00eatre de d\u00e9ploiement.<\/li>\n\n<\/ul>\n\n\n<div class=\"references-section\">\n                <h2>R\u00e9f\u00e9rences \/ Sources<\/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\">roots\/wp-password-bcrypt<\/a><\/li><li><a href=\"https:\/\/github.com\/roots\/bedrock\" target=\"_blank\" rel=\"noopener noreferrer\">roots\/bedrock<\/a><\/li><\/ul>\n            <\/div>","protected":false},"excerpt":{"rendered":"<p>WordPress 6.8 adopte enfin bcrypt par d\u00e9faut pour le hash des mots de passe. R\u00e9sultat : si tu utilises encore le package wp-password-bcrypt, tu peux le supprimer sans migration et sans casser l\u2019auth.<\/p>\n","protected":false},"author":13,"featured_media":144,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[9],"tags":[65,66,3,11,10],"class_list":["post-146","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-securite","tag-authentification","tag-bcrypt","tag-roots","tag-securite","tag-wordpress"],"_links":{"self":[{"href":"https:\/\/helloblog.io\/fr\/wp-json\/wp\/v2\/posts\/146","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/helloblog.io\/fr\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/helloblog.io\/fr\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/helloblog.io\/fr\/wp-json\/wp\/v2\/users\/13"}],"replies":[{"embeddable":true,"href":"https:\/\/helloblog.io\/fr\/wp-json\/wp\/v2\/comments?post=146"}],"version-history":[{"count":1,"href":"https:\/\/helloblog.io\/fr\/wp-json\/wp\/v2\/posts\/146\/revisions"}],"predecessor-version":[{"id":167,"href":"https:\/\/helloblog.io\/fr\/wp-json\/wp\/v2\/posts\/146\/revisions\/167"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/helloblog.io\/fr\/wp-json\/wp\/v2\/media\/144"}],"wp:attachment":[{"href":"https:\/\/helloblog.io\/fr\/wp-json\/wp\/v2\/media?parent=146"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/helloblog.io\/fr\/wp-json\/wp\/v2\/categories?post=146"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/helloblog.io\/fr\/wp-json\/wp\/v2\/tags?post=146"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}