{"id":138,"date":"2025-02-20T00:00:00","date_gmt":"2025-02-19T23:00:00","guid":{"rendered":"https:\/\/helloblog.io\/nl\/wordpress-6-8-bcrypt-standaard-wp-password-bcrypt-uitfaseren\/"},"modified":"2026-01-20T06:32:48","modified_gmt":"2026-01-20T05:32:48","slug":"wordpress-6-8-bcrypt-standaard-wp-password-bcrypt-uitfaseren","status":"publish","type":"post","link":"https:\/\/helloblog.io\/nl\/wordpress-6-8-bcrypt-standaard-wp-password-bcrypt-uitfaseren\/","title":{"rendered":"WordPress 6.8 maakt bcrypt standaard: tijd om wp-password-bcrypt uit je stack te halen"},"content":{"rendered":"\n<p>WordPress wachtwoorden zijn jarenlang een punt geweest waar je als developer liever zelf net wat extra\u2019s regelde. Niet omdat core het \u201cslecht\u201d deed, maar omdat modern password hashing nu eenmaal een moving target is en WordPress extreem veel legacy moet ondersteunen. Met WordPress 6.8 verandert dat: <strong>bcrypt wordt de standaard hashingmethode in core<\/strong>. Dat is goed nieuws voor de security baseline van WordPress \u2014 en het betekent meteen dat een bekende workaround overbodig wordt.<\/p>\n\n\n\n<p>Gebruik je in je project (vaak via Composer\/Bedrock) het pakket <code>wp-password-bcrypt<\/code> van Roots? Dan is dit het moment om je dependency-lijst op te schonen. Roots heeft aangekondigd dat ze het pakket gaan uitfaseren nu WordPress zelf bcrypt omarmt.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Even scherp: wat is bcrypt (en waarom wil je dit)?<\/h2>\n\n\n\n<p><code>bcrypt<\/code> is een password hashing-algoritme dat ontworpen is om <em>traag<\/em> te zijn (in de goede zin). Dat maakt brute-force aanvallen veel duurder, zeker als je database ooit lekt. In tegenstelling tot \u201csnelle\u201d hashes helpt bcrypt je om de impact van credential stuffing en offline cracking te beperken, omdat elke gok meer CPU kost.<\/p>\n\n\n\n<p>In WordPress-land draaide dit onderwerp vaak om de balans tussen backwards compatibility, performance op shared hosting en het upgraden van security zonder bestaande installaties te breken. Dat bcrypt nu standaard in core komt, is een duidelijke stap vooruit: een sterkere default zonder dat jij er als sitebouwer of agency een extra plugin of mu-plugin voor hoeft te onderhouden.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Wat gebeurt er met wp-password-bcrypt?<\/h2>\n\n\n\n<p>Roots introduced <code>wp-password-bcrypt<\/code> ooit om WordPress-projecten sneller naar een modernere hashing-setup te trekken, ruim voordat core die stap maakte. Met WordPress 6.8 wordt die extra laag in de praktijk redundant. Roots heeft daarom aangekondigd dat ze het pakket gaan afbouwen.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n\n<li>Het pakket wordt als <strong>abandoned<\/strong> gemarkeerd op Packagist.<\/li>\n\n\n<li>Verwijzingen worden verwijderd uit Bedrock en gerelateerde documentatie.<\/li>\n\n\n<li>De GitHub-repository wordt gearchiveerd.<\/li>\n\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">Wat betekent dit concreet voor jouw WordPress project?<\/h2>\n\n\n\n<p>De belangrijkste praktische boodschap: <strong>draait je site op WordPress 6.8 of hoger, dan heb je <code>wp-password-bcrypt<\/code> niet meer nodig<\/strong>. Je kunt het pakket verwijderen zonder dat je een aparte migratie hoeft te plannen.<\/p>\n\n\n\n<p>Belangrijk detail: volgens Roots blijven bestaande wachtwoorden gewoon werken. WordPress core neemt de afhandeling van bcrypt (waar van toepassing) over, waardoor je niet ineens een \u201cmass reset password\u201d-moment cre\u00ebert.<\/p>\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\">Waarom dit zo\u2019n fijne wijziging is<\/h4>\n\n\n<p>Minder moving parts in je auth-stack: geen extra package dat diep in login\/verify haakt, minder onderhoud, minder kans op edge cases bij upgrades \u2014 terwijl je security baseline omhoog gaat.<\/p>\n\n<\/div>\n\n\n\n<h2 class=\"wp-block-heading\">Hoe verwijder je wp-password-bcrypt (typische Bedrock\/Composer setup)<\/h2>\n\n\n\n<p>De meeste teams die dit gebruiken, hebben het als Composer dependency opgenomen. Dan is opruimen vooral dependency management + even checken of er geen mu-plugin of autoload entry achterblijft.<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n\n<li>Controleer of je project daadwerkelijk op WordPress 6.8+ zit (en plan de core update als dat nog niet zo is).<\/li>\n\n\n<li>Verwijder <code>roots\/wp-password-bcrypt<\/code> uit je <code>composer.json<\/code> (of gebruik <code>composer remove<\/code>).<\/li>\n\n\n<li>Deploy, en verifieer dat login, password reset en user creation flows normaal werken.<\/li>\n\n<\/ol>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span style=\"display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#24292e\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"54\" height=\"14\" viewBox=\"0 0 54 14\"><g fill=\"none\" fill-rule=\"evenodd\" transform=\"translate(1 1)\"><circle cx=\"6\" cy=\"6\" r=\"6\" fill=\"#FF5F56\" stroke=\"#E0443E\" stroke-width=\".5\"><\/circle><circle cx=\"26\" cy=\"6\" r=\"6\" fill=\"#FFBD2E\" stroke=\"#DEA123\" stroke-width=\".5\"><\/circle><circle cx=\"46\" cy=\"6\" r=\"6\" fill=\"#27C93F\" stroke=\"#1AAB29\" stroke-width=\".5\"><\/circle><\/g><\/svg><\/span><span role=\"button\" tabindex=\"0\" style=\"color:#e1e4e8;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><pre class=\"code-block-pro-copy-button-pre\" aria-hidden=\"true\"><textarea class=\"code-block-pro-copy-button-textarea\" tabindex=\"-1\" aria-hidden=\"true\" readonly># in je projectroot\ncomposer remove roots\/wp-password-bcrypt\n\n# optioneel: check je dependency tree\ncomposer why roots\/wp-password-bcrypt || true\n<\/textarea><\/pre><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki github-dark\" style=\"background-color:#24292e;color:#e1e4e8\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color:#6A737D\"># in je projectroot<\/span><\/span>\n<span class=\"line\"><span style=\"color:#B392F0\">composer<\/span><span style=\"color:#9ECBFF\"> remove<\/span><span style=\"color:#9ECBFF\"> roots\/wp-password-bcrypt<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color:#6A737D\"># optioneel: check je dependency tree<\/span><\/span>\n<span class=\"line\"><span style=\"color:#B392F0\">composer<\/span><span style=\"color:#9ECBFF\"> why<\/span><span style=\"color:#9ECBFF\"> roots\/wp-password-bcrypt<\/span><span style=\"color:#F97583\"> ||<\/span><span style=\"color:#79B8FF\"> true<\/span><\/span><\/code><\/pre><\/div>\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\">Let op bij \u201chandmatige\u201d integraties<\/h4>\n\n\n<p>Sommige projecten hebben ooit custom code of een mu-plugin toegevoegd rondom password hashing. Als je niet via Bedrock standaardconfig werkt, zoek dan even op <code>wp-password-bcrypt<\/code> in je repo om hidden glue code te verwijderen.<\/p>\n\n<\/div>\n\n\n\n<h2 class=\"wp-block-heading\">Wat kun je verwachten bij upgrades en support?<\/h2>\n\n\n\n<p>Omdat Roots <code>wp-password-bcrypt<\/code> als abandoned gaat markeren en de repository archiveert, moet je het zien als \u201cklaar en afgesloten\u201d. Dat is op zichzelf geen probleem \u2014 het is juist het signaal dat core het stokje heeft overgenomen. Het mooie is: je hoeft dus niet op zoek naar een alternatief pakket, zolang je WordPress 6.8+ runt.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Samengevat<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n\n<li>WordPress 6.8 zet <strong>bcrypt<\/strong> neer als standaard password hashing in core.<\/li>\n\n\n<li>Gebruik je <code>wp-password-bcrypt<\/code>? Dan is het vanaf 6.8 in principe overbodig.<\/li>\n\n\n<li>Je kunt het pakket verwijderen zonder wachtwoordmigratie; bestaande wachtwoorden blijven werken (volgens de aankondiging).<\/li>\n\n\n<li>Roots markeert het pakket als abandoned, haalt het uit Bedrock-documentatie en archiveert de repo.<\/li>\n\n<\/ul>\n\n\n<div class=\"references-section\">\n                <h2>Referenties \/ Bronnen<\/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><li><a href=\"https:\/\/discourse.roots.io\/t\/-\/29282\" target=\"_blank\" rel=\"noopener noreferrer\">Discuss this post on Roots Discourse<\/a><\/li><\/ul>\n            <\/div>","protected":false},"excerpt":{"rendered":"<p>Draaide je Bedrock of een custom WordPress-setup met wp-password-bcrypt voor betere wachtwoordbeveiliging? Vanaf WordPress 6.8 is bcrypt core, en kun je die dependency zonder migratiegedoe verwijderen.<\/p>\n","protected":false},"author":23,"featured_media":136,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[63],"tags":[67,66,65,7,10],"class_list":["post-138","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-wordpress-ecosysteem","tag-bcrypt","tag-bedrock","tag-beveiliging","tag-composer","tag-wordpress"],"_links":{"self":[{"href":"https:\/\/helloblog.io\/nl\/wp-json\/wp\/v2\/posts\/138","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/helloblog.io\/nl\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/helloblog.io\/nl\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/helloblog.io\/nl\/wp-json\/wp\/v2\/users\/23"}],"replies":[{"embeddable":true,"href":"https:\/\/helloblog.io\/nl\/wp-json\/wp\/v2\/comments?post=138"}],"version-history":[{"count":1,"href":"https:\/\/helloblog.io\/nl\/wp-json\/wp\/v2\/posts\/138\/revisions"}],"predecessor-version":[{"id":159,"href":"https:\/\/helloblog.io\/nl\/wp-json\/wp\/v2\/posts\/138\/revisions\/159"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/helloblog.io\/nl\/wp-json\/wp\/v2\/media\/136"}],"wp:attachment":[{"href":"https:\/\/helloblog.io\/nl\/wp-json\/wp\/v2\/media?parent=138"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/helloblog.io\/nl\/wp-json\/wp\/v2\/categories?post=138"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/helloblog.io\/nl\/wp-json\/wp\/v2\/tags?post=138"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}