
🔐 Mis tüüpi räsi WordPress kasutab
Parool teie administraatori paneelile on viimane asi, mis seisab häkkeri ja teie saidi täieliku kontrolli vahel. Nõrk parool või aegunud salvestusmehhanism muudab kalli hostingu ja tasulise tulemüüri pelgalt dekoratsiooniks.
Kahekümne aasta jooksul on WordPress arenenud MD5-lt tööstusliku tasemega bcryptile. Alates versioonist 6.8 on paroolide räsimine muutunud kaasaegseks kohe karbist võttes, ilma pluginate või lahendusteta. Kuid iga saidi omanik peaks täpselt mõistma, mis juhtub nende parooliga pärast „Logi sisse" klõpsamist.
Allpool on kogu ahel: alates parooli sisestamisest sisselogimisvormi kuni räsistringini andmebaasis. Koos koodi, filtrite ja konkreetsete seadistustega neile, kes soovivad enamat, kui tuum pakub.
💡 Kiire ülevaade:
- WordPress 6.8 ja uuemad versioonid räsivad paroole bcrypt algoritmiga, sama standardiga, mida kasutavad pangad ja valitsussüsteemid
- Vanad räsid (MD5, phpass) uuendatakse automaatselt bcryptile kasutaja järgmisel sisselogimisel; üleminek on sujuv ega vaja käsitsi sekkumist
- Filter
wp_hash_password_algorithmvõimaldab ühe koodireaga lülituda Argon2-le, pluginaid pole vaja - Plugin PHP Native Password Hash jääb elujõuliseks valikuks versioonidele alla 6.8 ja pakub peenhäälestatud Argon2 parameetrite seadistamist
wp-config.phpkaudu
Mis on räsimine ja miks WordPress seda vajab
Räsimine on ühesuunaline krüptograafiline teisendus. Mis tahes pikkusega stringist saate fikseeritud suurusega „sõrmejälje". Räsi tagasi algseks parooliks pööramine on matemaatiliselt võimatu; saate ainult proovida erinevaid sisendeid ja võrrelda saadud räsisid.

Erinevalt krüpteerimisest, kus andmeid saab võtmega taastada, on räsi ühesuunaline pilet. Kui sisestate sisselogimisel parooli, jooksutab WordPress selle läbi sama räsifunktsiooni ja võrdleb tulemust andmebaasis salvestatuga. Kui need ühtivad, antakse juurdepääs. Kui mitte, siis juurdepääs keelatakse.
WordPress salvestab räsid wp_users tabelis, user_pass väljal. Kui andmebaas lekib (ja seda on juhtunud isegi hiidudega: LinkedIn, Yahoo ja Tumblr kaotasid sadu miljoneid kirjeid), ei saa ründaja mitte loetavaid paroole, vaid pikad bcrypt stringid. Parooli taastamine sellisest stringist on võimatu. Kuid selle äraarvamine sõnastikurünnaku abil on võimalik, kui algoritm on nõrk või aegunud. Just seepärast on räsimise areng WordPressis nii oluline.
Kuidas WordPress varem paroole räsis: MD5 ja phpass
Enne versiooni 2.5 (2008) kasutas WordPress tavalist MD5. Algoritm teisendab mis tahes parooli 128-bitiseks räsiks, mis koosneb 32 kuueteistkümnendsüsteemi märgist. See näeb turvaline välja, kuid MD5 on haavatav vikerkaaretabelite (eelarvutatud räside andmebaasid miljardite levinud paroolide jaoks) suhtes. Andmebaasi juurdepääsuga häkker lihtsalt otsib räsi sellisest tabelist ja saab koheselt algse parooli kätte.
Alates versioonist 2.5 läks WordPress üle phpassile, kaasaskantavale teegile, mis põhineb bcryptil (Blowfish). See lisas paroolile juhusliku „soola" ja jooksutas tulemuse läbi räsifunktsiooni mitu korda (vaikimisi 2^8 = 256 iteratsiooni). Sool muutis vikerkaaretabelid kasutuks: kaks identset parooli erinevatele kasutajatele andsid erinevad räsid. Samal ajal säilitas phpass tagasiühilduvuse MD5-ga; vanad paroolid ei katkenud ja uuendati sisselogimisel sujuvalt uuele vormingule.
See oli paljudeks aastateks piisav. Kuid tööstus liikus edasi: kaasaegne riistvara (GPU farmid ja ASIC-id) suudab proovida miljardeid räsisid sekundis. bcrypt algoritm koos seadistatava kuluteguriga sai tööstusstandardiks. Ja alates WordPress 6.8-st kasutab tuum seda natiivselt.
WordPress 6.8 ja bcrypt: mis muutus
WordPress 6.8 "Cecil" väljalase (aprill 2025) tõi täieliku ülemineku bcryptile. Varem kasutas tuum oma PasswordHash klassi phpassi teegist; nüüd kutsub see natiivset PHP funktsiooni password_hash() konstandiga PASSWORD_BCRYPT.

Peamised muudatused funktsioonis wp_hash_password():
- bcrypt vaikimisi. Kõik uued paroolid räsitakse
password_hash()kaudu, kasutades bcrypt algoritmi ja PHP serveri määratud kulutegurit (tavaliselt 10). - Vanade paroolide automaatne migratsioon. Kui kasutaja logib sisse, kontrollib WordPress
password_needs_rehash()abil, kas räsi vajab uuendamist. Vana phpassi vorming ($P$...) asendatakse sujuvalt bcryptiga. - Pikkade paroolide kaitse. bcrypt kärbib üle 72 baidi pikkuseid paroole, vähendades entroopiat. WordPress 6.8 lahendab selle, eelräsides SHA-384-ga, kasutades domeenivõtit
wp-sha384ja kodeerides base64-s. 100-märgiline parool säilitab oma täieliku tugevuse. - Filtrid paindlikuks seadistamiseks. Ilmusid uued konksud:
wp_hash_password_algorithm(algoritmi valik) jawp_hash_password_options(parameetrid: cost, memory_cost, threads).
wp_hash_password() väljakutse WordPress 6.8 tuumas näeb välja selline:
1 function wp_hash_password( $password ) { 2 global $wp_hasher; 3 4 if ( ! empty( $wp_hasher ) ) { 5 return $wp_hasher->HashPassword( trim( $password ) ); 6 } 7 8 if ( strlen( $password ) > 4096 ) { 9 return '*'; 10 } 11 12 $algorithm = apply_filters( 'wp_hash_password_algorithm', PASSWORD_BCRYPT ); 13 $options = apply_filters( 'wp_hash_password_options', array(), $algorithm ); 14 15 if ( PASSWORD_BCRYPT !== $algorithm ) { 16 return password_hash( $password, $algorithm, $options ); 17 } 18 19 $password_to_hash = base64_encode( 20 hash_hmac( 'sha384', trim( $password ), 'wp-sha384', true ) 21 ); 22 23 return '$wp' . password_hash( $password_to_hash, $algorithm, $options ); 24 }
Funktsioon kontrollib kõigepealt, kas räsimisloogikat on üle kirjutanud väline plugin (globaalne muutuja $wp_hasher). Seejärel lükkab see tagasi paroolid, mis on pikemad kui 4096 märki; sellised sisselogimiskatsed tagastavad *, muutes autentimise võimatuks. Järgmisena tuleb huvitav osa: filter wp_hash_password_algorithm määrab algoritmi. Kui valik EI OLE bcrypt, räsitakse parool otse. Kui bcrypt on valitud, läbib parool kõigepealt SHA-384 koos võtmega wp-sha384, kodeeritakse base64-s ja alles seejärel antakse edasi funktsioonile password_hash(). Väljund on räsi prefiksiga $wp, mis eristab "WordPressi" bcrypti tavalisest bcryptist. See on kasulik andmebaasi audititeks või integreerimiseks väliste süsteemidega.
Kuidas tugevdada räsimist Argon2-ga
bcrypt on suurepärane lähtetase. Järgmine samm on Argon2, 2015. aasta paroolide räsimise võistluse võitja. Argon2 loodi spetsiaalselt GPU rünnakutele vastupanemiseks: see on mälumahukas ja videokaardid on siin pudelikaelaks.

Variant 1: wp_hash_password_algorithm konks (WordPress 6.8+)
Lisage see oma alamteema functions.php faili või Code Snippets plugina kaudu:
1 add_filter( 'wp_hash_password_algorithm', function() { 2 return PASSWORD_ARGON2ID; 3 });
Paari sekundiga lülitub WordPress üle Argon2ID-le. Vanad paroolid räsitakse automaatselt ümber, kui kasutajad sisse logivad. Teie hosting peab toetama Argon2 PHP-s; Argon2ID jaoks on vaja versiooni 7.3 või uuemat. Saadavust saate kontrollida, kutsudes välja password_algos().
Parameetrite peenhäälestamiseks kasutage kaasnevat konksu:
1 add_filter( 'wp_hash_password_options', function( $options, $algorithm ) { 2 if ( PASSWORD_ARGON2ID === $algorithm ) { 3 return array( 4 'memory_cost' => 65536, // 64 MB 5 'time_cost' => 4, 6 'threads' => 2, 7 ); 8 } 9 return $options; 10 }, 10, 2 );
Parameeter memory_cost määrab, kui palju mälu peab algoritm räsi arvutamisel kasutama; mida kõrgem väärtus, seda raskemaks muutub GPU-põhine toore jõu rünnak. time_cost määrab iteratsioonide arvu ja threads lõimede arvu.
Variant 2: PHP Native Password Hash plugin
WordPressi versioonide puhul, mis on alla 6.8, teeb sama asja plugin PHP Native Password Hash. See asendab kogu räsimisloogika natiivse password_hash() funktsiooniga, toetab bcrypti ja Argon2 ning sellel puudub liides; kõik seaded konfigureeritakse konstantide kaudu failis wp-config.php:
1 define( 'WP_PASSWORD_HASH_ALGO', PASSWORD_ARGON2ID ); 2 define( 'WP_PASSWORD_HASH_OPTIONS', [ 3 'memory_cost' => 65536, 4 'time_cost' => 4, 5 'threads' => 2, 6 ] );
Plugina viimasest uuendusest on möödas üle kahe aasta, kuid selle kood on minimaalne ja stabiilne. WordPress 6.8 puhul on selle funktsionaalsus tuuma sisse ehitatud, nii et saate selle eemaldada ja kasutada selle asemel natiivseid filtreid.
Räsimootorid: mis täna töötab
On olukordi, kus pead räsi käsitsi genereerima: näiteks parooli otse andmebaasi kirjutamine phpMyAdmini kaudu või kasutajate migreerimine välisest süsteemist.

Vanemate WordPressi versioonide ajastul populaarne online-generaator saidilt passwordtool.hu pole enam saadaval: sait vahetas omanikku. Tänapäeval toimivad alternatiivid:
- WP-CLI: käsk
wp user update <id> --user_pass="newpassword"teeb kõik korrektselt läbiwp_hash_password(). Kiire, turvaline ja garanteeritult õige. - PHP skript saidi juurkaustas: loo ajutiselt fail kutsungiga
echo wp_hash_password('password');ja kustuta see kohe pärast kasutamist. - Ükskõik milline online bcrypt generaator: näiteks bcrypt.online. Aga pea meeles: WordPress 6.8 lisab
$wpprefiksi ja SHA-384 eelräsimise, nii et tavaline bcrypt räsi ei sobi otse andmebaasi sisestamiseks.
Praktikas on WP-CLI kõige usaldusväärsem variant.
Kuidas valida parooli, mida lahti ei murtaks
Isegi bcrypt ei päästa, kui parool on admin123. Häkkerid alustavad rünnakut sõnastikupõhise brute-force'iga.

Dropboxi tööriist zxcvbn, mis on WordPressi adminpaneelis parooli hindamiseks sisse ehitatud, lükkab tagasi levinud mustrid: sünnikuupäevad, 123456 ja qwerty, lemmikloomade nimed. See analüüsib paroole sõnastike, klaviatuuripaigutuste ja märgiasendusmustrite põhjal. Hinnang „nõrk" tähendab, et parool on sekunditega äraarvatav.
Kolm praktilist reeglit:
- Juhuslikud sõnad, mitte märgisupp. Neljast või viiest omavahel seostamata ingliskeelsest sõnast koosnev parool eraldajatega (näiteks
correct-horse-battery-staple) on kergemini meeldejäetav kuiTr0ub4dor&3ja selle lahtimurdmine võtab palju kauem aega. - Pikkus on olulisem kui keerukus. Kuusteist juhuslikku väiketähte annavad suurema entroopia kui 8 märki erisümbolitega. Ja bcrypt WordPress 6.8-s säilitab mõistliku pikkusega paroolide entroopia tänu SHA-384 eelräsimisele.
- Kasuta paroolihaldurit. Inimmälu on kehv tööriist tosina unikaalse parooli haldamiseks. 1Password on tasuline kuldstandard perepaketiga, KeePass on tasuta avatud lähtekoodiga kohaliku andmebaasiga, Bitwarden on kuldne kesktee: tasuta, pilvepõhine ja avatud lähtekoodiga.

Paroolihaldur genereerib, salvestab ja automaatselt täidab paroole. Sa pead meeles pidama ainult ühte peaparooli. Ja kui sait toetab kaheastmelist autentimist, lülita see kindlasti sisse. Parool pluss ühekordne kood rakendusest muudab sisselogimise praktiliselt haavamatuks.
Video: kuidas parooli räsimine WordPressis töötab
Lühike selgitus räsimismehhanismist alates parooli sisestamisest kuni selle salvestamiseni WordPressi andmebaasis:
⁉️🤔 Korduma kippuvad küsimused
Kas vana MD5-ga räsitud paroolid töötavad endiselt WordPress 6.8+ versioonis?
Jah. Kui kasutaja logib sisse, tuvastab WordPress vana räsivormingu, kontrollib parooli eelmise algoritmiga ja kui kõik on korras, uuendab räsi sujuvalt bcrypt-ile. Pole vaja kustutada vanu kasutajaid ega sundida paroole lähtestama.
Kas PHP Native Password Hash pistikprogramm on vajalik WordPress 6.8 ja uuemate versioonide puhul?
Ei. Kõik, mida pistikprogramm tegi (räsimine
password_hash()kaudu ja Argon2 tugi), on nüüd saadaval läbi natiivsete filtritewp_hash_password_algorithmjawp_hash_password_options. Pistikprogramm on asjakohane ainult versioonidele alla 6.8.
Kas ma saan Argon2 pealt bcrypt-ile tagasi minna?
Tehniliselt jah, muutes algoritmi filtris. Aga vanu Argon2 räsisid ei tuvastata ja kasutajad peavad oma paroolid lähtestama. Kui katsetad algoritmidega töötaval saidil, tee kõigepealt täielik andmebaasi varukoopia.
Kas bcrypt aitab, kui andmebaas lekib?
bcrypt muudab lekkind räsidest paroolide brute-force rünnaku sadu tuhandeid kordi aeglasemaks kui MD5. Kuluteguriga 10 võtab ühe räsi arvutamine kaasaegsel protsessoril umbes 0,1 sekundit; miljard katset võtaks aastaid. Aga kui parool on
password, leitakse see sõnastikrünnaku kõige esimeses iteratsioonis. Algoritm kaitseb keerulisi paroole; miski ei päästa nõrku.
Kuidas kontrollida, et minu paroole räsitakse bcrypt-iga?
Kontrolli
wp_userstabelit phpMyAdmini kaudu. Uute kasutajate (ja nende, kes logisid sisse pärast 6.8-le uuendamist)user_passväli peaks algama$wpprefiksiga (WordPressi uue bcrypt vormingu marker). Vanad phpass räsid näevad välja nagu$P$B.... Hulgi kontrolliks käivita see SQL päring:SELECT COUNT(*) FROM wp_users WHERE user_pass NOT LIKE '$wp$%' AND user_pass NOT LIKE '$P$%';. See näitab, kui palju paroole on aegunud formaadis, kui üldse.
Mida WordPressi räsimise osas kohe ette võtta
Kui sinu WordPressi sait on versioonil 6.8 või uuemal, oled juba bcrypt-iga kaitstud; sul pole vaja midagi teha. Tuum uuendab vanad räsid automaatselt, kui kasutajad sisse logivad, ja migratsioon on täiesti sujuv.
Kui soovid Argon2, lisa faili functions.php filter wp_hash_password_algorithm väärtusega PASSWORD_ARGON2ID. Esmalt veendu, et sinu hostimine Argon2 toetab: käivita testskripti kaudu var_dump(password_algos());. Enamikul kaasaegsetel hostinguteenuse pakkujatel on tugi olemas.
Versioonide puhul, mis on alla 6.8, paigalda plugin PHP Native Password Hash; see annab sulle bcrypti või Argon2 ilma tuuma uuendamata. Ja planeeri ühtlasi WordPressi uuendus: iga suurem uuendus paikab kümneid turvaauke, mitte ainult räsimise osas.
Ja mis kõige tähtsam, vaheta admin123 millegi korraliku vastu. Ükski algoritm ei päästa sind sõnastikurünnaku eest, kui su parool on rockyou.txt nimekirja esimese saja kirje seas.



