{"id":117,"date":"2025-02-20T00:00:00","date_gmt":"2025-02-19T23:00:00","guid":{"rendered":"https:\/\/helloblog.io\/pl\/wordpress-6-8-bcrypt-wp-password-bcrypt\/"},"modified":"2026-01-20T06:32:50","modified_gmt":"2026-01-20T05:32:50","slug":"wordpress-6-8-bcrypt-wp-password-bcrypt","status":"publish","type":"post","link":"https:\/\/helloblog.io\/pl\/wordpress-6-8-bcrypt-wp-password-bcrypt\/","title":{"rendered":"WordPress 6.8 przechodzi na bcrypt: co to oznacza dla projekt\u00f3w z wp-password-bcrypt?"},"content":{"rendered":"\n<p>W ekosystemie WordPressa rzadko zdarza si\u0119 zmiana, kt\u00f3ra jednocze\u015bnie poprawia bezpiecze\u0144stwo i upraszcza utrzymanie projektu. WordPress 6.8 ma w\u0142a\u015bnie taki moment: rdze\u0144 ma u\u017cywa\u0107 <code>bcrypt<\/code> jako domy\u015blnej metody haszowania hase\u0142 u\u017cytkownik\u00f3w. To istotne, bo w wielu nowocze\u015bniejszych wdro\u017ceniach (szczeg\u00f3lnie opartych o Roots\/Bedrock) ten temat by\u0142 \u201e\u0142atany\u201d zewn\u0119trznie paczk\u0105 <code>wp-password-bcrypt<\/code>.<\/p>\n\n\n\n<p>Poni\u017cej rozk\u0142adam na czynniki pierwsze, co ta zmiana oznacza praktycznie: dla istniej\u0105cych instalacji, dla deploy\u00f3w, dla zale\u017cno\u015bci w Composerze i dla zespo\u0142\u00f3w, kt\u00f3re od lat polega\u0142y na tym dodatku.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Co si\u0119 zmienia w WordPress 6.8? (bcrypt w core)\ufeff<\/h2>\n\n\n\n<p>Zgodnie z zapowiedzi\u0105 zespo\u0142u WordPress Core, od wersji 6.8 <code>bcrypt<\/code> ma by\u0107 standardem w rdzeniu do haszowania hase\u0142. <code>bcrypt<\/code> to sprawdzony, celowo \u201ekosztowny\u201d algorytm haszuj\u0105cy (z wbudowan\u0105 sol\u0105), zaprojektowany tak, \u017ceby utrudnia\u0107 ataki brute force i masowe \u0142amanie hashy w razie wycieku bazy.<\/p>\n\n\n\n<p>W praktyce oznacza to, \u017ce poprawa bezpiecze\u0144stwa logowania i przechowywania hase\u0142 przestaje by\u0107 czym\u015b, co musisz dowozi\u0107 pluginem\/paczk\u0105. WordPress ma to zapewni\u0107 sam.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Dlaczego wp-password-bcrypt przestaje by\u0107 potrzebne?<\/h2>\n\n\n\n<p><code>wp-password-bcrypt<\/code> od Roots by\u0142o odpowiedzi\u0105 na realny problem: przez d\u0142ugi czas WordPress nie oferowa\u0142 r\u00f3wnie mocnego haszowania hase\u0142 w standardzie, wi\u0119c cz\u0119\u015b\u0107 zespo\u0142\u00f3w wdra\u017ca\u0142a bcrypt \u201ebokiem\u201d. Ten pakiet robi\u0142 to w spos\u00f3b mo\u017cliwie bezbolesny dla aplikacji.<\/p>\n\n\n\n<p>Skoro jednak WordPress 6.8 (i nowsze) ma natywnie obs\u0142ugiwa\u0107 bcrypt, dodatkowa warstwa staje si\u0119 zb\u0119dna. Z punktu widzenia utrzymania projektu to dobra wiadomo\u015b\u0107: mniej zale\u017cno\u015bci, mniej potencjalnych konflikt\u00f3w i mniej element\u00f3w, kt\u00f3re trzeba audytowa\u0107.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Najwa\u017cniejsze: czy trzeba migrowa\u0107 has\u0142a u\u017cytkownik\u00f3w?<\/h2>\n\n\n\n<p>Nie. Je\u015bli Twoja strona dzia\u0142a na WordPressie 6.8 lub nowszym, mo\u017cesz usun\u0105\u0107 <code>wp-password-bcrypt<\/code> bez wykonywania migracji hase\u0142. Istniej\u0105ce has\u0142a nadal b\u0119d\u0105 dzia\u0142a\u0107, a rdze\u0144 WordPressa ma przej\u0105\u0107 uwierzytelnianie i obs\u0142ug\u0119 bcrypt tam, gdzie to w\u0142a\u015bciwe.<\/p>\n\n\n\n<div class=\"wp-block-group callout callout-success is-style-success 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\">Dobra wiadomo\u015b\u0107 dla zespo\u0142\u00f3w utrzymaniowych<\/h4>\n\n\n<p>Brak migracji = brak okna serwisowego, brak reset\u00f3w hase\u0142 i mniejsze ryzyko operacyjne przy aktualizacji.<\/p>\n\n<\/div>\n\n\n\n<h2 class=\"wp-block-heading\">Co planuje Roots wzgl\u0119dem wp-password-bcrypt?<\/h2>\n\n\n\n<p>Roots oficjalnie \u201ewygasza\u201d pakiet, bo jego rola zosta\u0142a przej\u0119ta przez core WordPressa. W komunikacie zapowiedziano trzy konkretne kroki po stronie projektu:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n\n<li>oznaczenie <code>wp-password-bcrypt<\/code> jako <strong>abandoned<\/strong> na Packagist,<\/li>\n\n\n<li>usuni\u0119cie odwo\u0142a\u0144 do pakietu z Bedrocka i powi\u0105zanej dokumentacji,<\/li>\n\n\n<li>zarchiwizowanie repozytorium na GitHubie.<\/li>\n\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">Co powiniene\u015b zrobi\u0107 w praktyce (checklista dla projekt\u00f3w na Composerze)<\/h2>\n\n\n\n<p>Je\u017celi utrzymujesz WordPressa przez Composer (np. Bedrock) i w zale\u017cno\u015bciach masz <code>roots\/wp-password-bcrypt<\/code>, decyzja zale\u017cy g\u0142\u00f3wnie od tego, na jakiej wersji core dzia\u0142a produkcja.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">1) Gdy produkcja jest na WordPress 6.8+<\/h3>\n\n\n\n<p>Mo\u017cesz zaplanowa\u0107 usuni\u0119cie paczki z projektu. Z perspektywy dzia\u0142ania logowania u\u017cytkownik\u00f3w nie powinno to wymaga\u0107 dodatkowych krok\u00f3w, bo core ma obs\u0142u\u017cy\u0107 bcrypt bezpo\u015brednio.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">2) Gdy produkcja jest poni\u017cej WordPress 6.8<\/h3>\n\n\n\n<p>Na starszych wersjach sytuacja si\u0119 nie zmienia automatycznie. Je\u015bli dzi\u015b polegasz na <code>wp-password-bcrypt<\/code> dla wzmocnionego haszowania, to dopiero upgrade do 6.8 (lub wy\u017cej) pozwoli Ci ten element bezpiecznie wyrzuci\u0107. Do tego czasu usuni\u0119cie zale\u017cno\u015bci by\u0142oby cofni\u0119ciem zabezpieczenia, kt\u00f3re celowo wprowadzi\u0142e\u015b.<\/p>\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\">Uwaga na mieszane \u015brodowiska<\/h4>\n\n\n<p>Je\u015bli masz kilka instancji (staging\/production) na r\u00f3\u017cnych wersjach WordPressa, uwa\u017caj, \u017ceby nie usun\u0105\u0107 paczki \u201eza wcze\u015bnie\u201d tylko dlatego, \u017ce staging ju\u017c jest na 6.8.<\/p>\n\n<\/div>\n\n\n\n<h2 class=\"wp-block-heading\">Dlaczego to jest realny krok do przodu dla bezpiecze\u0144stwa WordPressa?<\/h2>\n\n\n\n<p>Najwi\u0119ksza warto\u015b\u0107 tej zmiany nie polega na tym, \u017ce bcrypt jest modny, tylko na tym, \u017ce staje si\u0119 domy\u015blnym standardem w core. Do tej pory wiele instalacji WordPressa dzia\u0142a\u0142o \u201etak jak jest\u201d, bez dodatkowych wtyczek\/paczek bezpiecze\u0144stwa, bo w\u0142a\u015bciciele stron cz\u0119sto nie wiedz\u0105, \u017ce takie rzeczy w og\u00f3le trzeba rozwa\u017ca\u0107.<\/p>\n\n\n\n<p>W\u0142\u0105czenie bcrypt w rdzeniu sprawia, \u017ce wy\u017cszy poziom ochrony staje si\u0119 powszechny, a nie elitarny (tylko dla tych, kt\u00f3rzy \u015bwiadomie dorabiali warstw\u0119 w Composerze). To te\u017c zmniejsza fragmentacj\u0119: mniej r\u00f3\u017cnych implementacji haszowania w zale\u017cno\u015bci od tego, jakie dodatki ma dana instalacja.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Podsumowanie<\/h2>\n\n\n\n<ol class=\"wp-block-list\">\n\n<li>WordPress 6.8 ma u\u017cywa\u0107 bcrypt jako domy\u015blnego haszowania hase\u0142 w core.<\/li>\n\n\n<li>Je\u015bli jeste\u015b na 6.8+, <code>wp-password-bcrypt<\/code> nie jest ju\u017c potrzebne i mo\u017cna je usun\u0105\u0107.<\/li>\n\n\n<li>Nie potrzeba migracji hase\u0142 \u2014 istniej\u0105ce loginy powinny dzia\u0142a\u0107 bez zmian.<\/li>\n\n\n<li>Roots wygasza projekt: abandoned na Packagist, usuni\u0119cie wzmianek z Bedrocka i archiwizacja repozytorium.<\/li>\n\n<\/ol>\n\n\n<div class=\"references-section\">\n                <h2>Odniesienia \/ \u0179r\u00f3d\u0142a<\/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>Je\u015bli w Twoim stacku (np. Bedrock) od lat siedzi `wp-password-bcrypt`, WordPress 6.8 praktycznie \u201ezjada\u201d jego funkcj\u0119. Sprawd\u017a, co mo\u017cesz bezpiecznie usun\u0105\u0107 i dlaczego nie potrzebujesz \u017cadnej migracji hase\u0142.<\/p>\n","protected":false},"author":26,"featured_media":116,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[9],"tags":[71,73,35,72,10],"class_list":["post-117","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-bezpieczenstwo","tag-bcrypt","tag-bedrock","tag-bezpieczenstwo","tag-uwierzytelnianie","tag-wordpress"],"_links":{"self":[{"href":"https:\/\/helloblog.io\/pl\/wp-json\/wp\/v2\/posts\/117","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/helloblog.io\/pl\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/helloblog.io\/pl\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/helloblog.io\/pl\/wp-json\/wp\/v2\/users\/26"}],"replies":[{"embeddable":true,"href":"https:\/\/helloblog.io\/pl\/wp-json\/wp\/v2\/comments?post=117"}],"version-history":[{"count":1,"href":"https:\/\/helloblog.io\/pl\/wp-json\/wp\/v2\/posts\/117\/revisions"}],"predecessor-version":[{"id":134,"href":"https:\/\/helloblog.io\/pl\/wp-json\/wp\/v2\/posts\/117\/revisions\/134"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/helloblog.io\/pl\/wp-json\/wp\/v2\/media\/116"}],"wp:attachment":[{"href":"https:\/\/helloblog.io\/pl\/wp-json\/wp\/v2\/media?parent=117"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/helloblog.io\/pl\/wp-json\/wp\/v2\/categories?post=117"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/helloblog.io\/pl\/wp-json\/wp\/v2\/tags?post=117"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}