WordPress ใช้แฮชประเภทใด?


คำตอบ:


146

รหัสผ่าน WordPress ได้ใช้เฟรมเวิร์กการแฮชรหัสผ่าน Portable PHPซึ่งใช้ในระบบการจัดการเนื้อหาเช่น WordPress และ Drupal

พวกเขาเคยใช้ MD5 ในรุ่นที่เก่ากว่า แต่น่าเสียดายสำหรับฉันไม่มาก คุณสามารถสร้าง hashes โดยใช้รูปแบบการเข้ารหัสนี้ที่http://scriptserver.mainframe8.com/wordpress_password_hasher.php


12
เป็นคนเจอคำถามเก่านี้เหมือนที่ฉันทำโปรดทราบว่า MD5 ไม่เป็นที่ยอมรับอีกต่อไป หากคุณมี> PHP 5.5.0 ให้ใช้password_hashฟังก์ชั่นใหม่ ถ้าคุณมี> PHP 5.3.7 ให้ใช้ไลบรารีความเข้ากันได้ที่นี่github.com/ircmaxell/password_compat
Andrew Brown เมื่อ

14
ฉันไม่รู้ว่านี่จะช่วยได้หรือไม่ แต่ WP จะยังคงใช้ MD5 โดยตรงในครั้งแรกที่คุณใช้รหัสผ่านจากนั้นจะ "เกลือ" ดังนั้นหากคุณเข้าถึงฐานข้อมูลได้โดยใช้ MyPHPAdmin คุณสามารถเปลี่ยน PW เป็น "MyPass" ให้เลือก MD5 ในเมนูแบบเลื่อนลง "ฟังก์ชั่น" และจะบันทึกเป็น MD5 แบบตรง ลงชื่อเข้าใช้ Wordpress และจะเปลี่ยนเป็นรุ่น "salted" โดยเพิ่ม $ P $ B __ / เพิ่ม
BillyNair

โดยทั่วไปหากผู้ใช้ไม่ได้ลงชื่อเข้าใช้ด้วย PW มันจะยังคงอยู่ในรูปแบบ MD5 มันจะมีลักษณะเหมือนกับคนอื่น ๆ ที่มี PW เดียวกัน เมื่อคุณลงชื่อเข้าใช้แม้ด้วย PW เดียวกันนั้นก็จะเปลี่ยนเป็น "เกลือ" ส่วนตัวของคุณเองดังนั้นคุณและเพื่อนของคุณลงชื่อเข้าใช้พร้อมกันด้วย PW เดียวกัน "MD5 ที่เค็ม" ของคุณจะดูแตกต่าง หมายความว่าไม่มีวิธีสืบค้น DB เพื่อทดสอบว่ามีการเปลี่ยนแปลง PW จากค่าเริ่มต้นหรือไม่เนื่องจาก WP จะเปลี่ยนเป็นรุ่นที่ใส่เกลือแม้ว่าจะเป็นค่าเริ่มต้นก็ตาม
BillyNair

@ แอนดรูว์บราวน์ฉันไม่เห็นด้วยว่า MD5 นั้นไม่เป็นที่ยอมรับอีกต่อไป อาจเป็นจริงสำหรับการสร้าง pass จาก CMS แต่ลองใช้ระดับ DB .. มันยังคงทำงานได้จนถึงวันที่เมื่อฉันลืมรหัสผ่าน WP; ฉันลงชื่อเข้าใช้ phpMyAdmin และสร้าง MD5 hash สำหรับฟิลด์รหัสผ่านในตาราง wp_users และทำงานได้ ... Google: รีเซ็ตรหัสผ่านผู้ดูแลระบบ WordPress ด้วยตนเอง .. ดูคำตอบของ johnMetta ด้วย
wpcoder

3
@wpcoder MD5 ไม่มีคำถามที่ถามไม่ปลอดภัย 100% การเข้ารหัสลับและไม่สามารถใช้เป็นวิธีการจัดเก็บรหัสผ่านที่แฮชได้
Andrew Brown

21
$hash_type$salt$password

หากแฮชไม่ได้ใช้เกลือแสดงว่าไม่มี $สัญญาณ แฮชจริงในกรณีของคุณคือหลังวันที่ 2$

สาเหตุของการทำเช่นนี้คือคุณสามารถมีแฮชหลายประเภทที่มีเกลือที่แตกต่างกันและดึงข้อมูลสตริงนั้นเข้าสู่ฟังก์ชันที่รู้วิธีจับคู่มันกับค่าอื่น ๆ


ขอบคุณ แต่ฉันคิดว่า md5 hashes ต้องเป็น hex เช่นนี้: b1946ac92492d2347c6235b4d2611184 ทำไมแฮชนี้ถึงมีตัวอักษร AZ และ ในนั้น? มันคือ md5 hash หรือเปล่า?

อาจเป็นชนิดของแฮชที่ใช้ Hash เป็นเพียงสตริงขนาดคงที่ อาจมีสิ่งที่คุณต้องการ
Ólafur Waage

@Amanda Kumar มาช้ามากสำหรับฝ่ายนี้ แต่ MD5 สร้างค่า 128- บิต (16- ไบต์) ค่าดังกล่าวสามารถจัดเก็บและแสดงด้วยวิธีต่างๆเช่นสตริงฐานสิบหกสตริง Base64 หรือข้อมูลดิบในไฟล์ คุณมักจะเห็นค่า MD5 ที่แสดงเป็นเลขฐานสิบหก แต่ WordPress ใช้ Base64 แทน ค่าฐานสิบหกของคุณจะเป็น sZRqySSS0jR8YjW00mERhA == ใน Base64 ซึ่งใช้อักขระน้อยกว่าฐานสิบหก 25% เพื่อแสดงข้อมูลเดียวกัน
jordanbtucker

14

MD5 ทำงานให้ฉันเปลี่ยนฐานข้อมูลด้วยตนเอง โปรดดู: การรีเซ็ตรหัสผ่านของคุณ


1
ไม่นี่ไม่ใช่แฮช md5 ธรรมดาแฮชธรรมดา md5 มีลักษณะเช่นนี้: b1946ac92492d2347c6235b4d2611184 ฉันเคยได้ยินมาแล้วว่ามันใช้ md5 แต่ใครบางคนโปรดบอกฉันได้ว่ามันใช้กัญชาประเภทไหนและมีตัวเลือกอะไรให้เลือกในรหัสผ่าน

24
MD5 จะทำงานหากป้อนด้วยตนเองลงในตาราง แต่เมื่อเข้าสู่ระบบครั้งแรก WP จะเขียนใหม่โดยใช้แฮชของตัวเองดังนั้นจึงใช้งานได้ดีสำหรับการรีเซ็ตรหัสผ่าน แต่ไม่มากกว่านั้น
GiladG

1
@FranciscoCorralesMorales - พิมพ์รหัสผ่านตามที่อยู่ใน DB จากนั้นเลือก MD5 จากดรอปดาวน์ยังคงใช้งานได้ นอกจากนี้คุณยังสามารถคัดลอก / วางสายอักขระเข้ารหัส MD5 ลงในกล่องและไม่เลือกสิ่งใดและมันจะทำงาน (ดังนั้นถ้า PW ของคุณคือ "qwertyuiop" ND5 ของคุณคือ "6eea9b7ef19179a06954edd0f6c05ceb" หากคุณใช้รหัสผ่าน "qwertyuiop" โดยตรง MD5 "หรือใช้แฮชแบบยาวนั้นและอย่าเลือกอะไรเลยบันทึก DB แล้วล็อกอิน WordPress โดยใช้" qwertyuiop "และมันจะใช้ได้)
BillyNair

12

สำหรับการรีเซ็ตรหัสผ่านใน Wordpress DB ด้วยตนเองแฮช MD5 แบบง่ายก็เพียงพอแล้ว (ดูเหตุผลด้านล่าง)

เพื่อป้องกันความเข้ากันได้ย้อนหลังรหัสผ่านที่แฮช MD5 ที่จัดเก็บในฐานข้อมูลยังคงใช้ได้ เมื่อผู้ใช้ล็อกอินด้วยรหัสผ่านดังกล่าว WordPress จะตรวจพบว่ามีการใช้ MD5 และทำการกู้รหัสผ่านใหม่โดยใช้วิธีที่ปลอดภัยยิ่งขึ้นและเก็บแฮชใหม่ในฐานข้อมูล

ที่มา: http://eamann.com/tech/wordpress-password-hashing/

อัปเดต: นี่เป็นคำตอบที่โพสต์ในปี 2014 ฉันไม่รู้ว่ามันยังใช้ได้กับ WP เวอร์ชันล่าสุดหรือไม่เพราะฉันไม่ได้ทำงานกับ WP อีกต่อไป


การบันทึกแฮช MD5 ไม่ทำงานอีกต่อไป ที่มา: ฉันแค่ลองมัน
Jay Jee

เพิ่งลองและเข้าสู่ระบบ MD5 ได้รับการแปลงโดยอัตโนมัติเป็นแฮช wp รุ่น Wp 5.1
มิโร

10

ฉันมีปัญหาเดียวกันในการค้นหาว่าแฮชประเภทใดที่ใช้ Wordpress

มันเป็นกัญชารหัสผ่าน WP

ตัวอย่าง

เปรียบเทียบรหัสผ่านที่แฮชแล้วกับสตริงข้อความธรรมดา:

<?php
$wp_hasher = new PasswordHash(8, TRUE);

$password_hashed = '$P$B55D6LjfHDkINU5wF.v2BuuzO0/XPk/';
$plain_password = 'test';

if($wp_hasher->CheckPassword($plain_password, $password_hashed)) {
    echo "YES, Matched";
} else {
    echo "No, Wrong Password";
}
?>

ดูลิงค์เหล่านี้: https://codex.wordpress.org/Function_Reference/wp_hash_password

https://developer.wordpress.org/reference/functions/wp_hash_password

มันใช้ PasswordHash ซึ่งจะเพิ่มเกลือให้กับรหัสผ่านและแฮชด้วย MD5 ของ MD5


9

ขึ้นอยู่กับรุ่นของ PHP ที่ใช้เป็นอย่างน้อย wp-includes/class-phpass.phpมีคำตอบทั้งหมด


7

วิธีที่ดีที่สุดในการทำเช่นนี้คือการใช้คลาส WordPress เพื่อตรวจสอบสิทธิ์ผู้ใช้ นี่คือโซลูชันของฉัน:

1. รวมไฟล์ WordPress PHP ต่อไปนี้:

include_once(dirname(dirname(dirname(__FILE__))) . DIRECTORY_SEPARATOR . "wp-includes" . DIRECTORY_SEPARATOR . "class-phpass.php");

2. สร้างวัตถุของPasswordHashคลาส:

$wp_hasher = new PasswordHash(8, true);

3. CheckPasswordฟังก์ชั่นการโทรเพื่อตรวจสอบผู้ใช้:

$check = $wp_hasher->CheckPassword($password, $row['user_pass']);

4. ตรวจสอบ$checkตัวแปร:

if($check) {
   echo "password is correct";
} else {
   echo "password is incorrect";
}

โปรดทราบว่า: $passwordเป็นรหัสผ่านที่ไม่แฮชเป็นข้อความที่ชัดเจนส่วน$row['user_pass']รหัสผ่านที่ถูกแฮชที่คุณต้องดึงจากฐานข้อมูล


2
มันไม่ชัดเจนในคำตอบ แต่ $ password เป็นรหัสผ่านที่ไม่ถูกแฮชในข้อความที่ชัดเจนขณะที่ $ row ['user_pass'] เป็นรหัสผ่านที่แฮชที่คุณต้องการดึงจาก db ด้วยตัวคุณเอง
Advait S

5

เริ่ม phpMyAdmin และเข้าถึง wp_users จากอินสแตนซ์ของคุณ wordpress แก้ไขบันทึกและเลือกฟังก์ชั่น user_pass เพื่อให้ตรงกับ MD5 เขียนสตริงที่จะเป็นรหัสผ่านใหม่ของคุณใน VALUE คลิกไป ไปที่เว็บไซต์ WordPress ของคุณและป้อนรหัสผ่านใหม่ของคุณ กลับไปที่ phpMyAdmin คุณจะเห็นว่า WP เปลี่ยน HASH เป็น $ P $ B ... เพลิดเพลินไปกับมัน!


ยืนยันการติดตั้ง WP 2017 ในปี 2019!
เจอราร์ด

2

Wordpress ใช้การแฮชรหัสผ่านMD5 สร้างแฮชของรหัสผ่านข้อความล้วน หากไม่ได้ตั้งค่า $ wp_hasher ทั่วโลกการใช้งานเริ่มต้นจะใช้ PasswordHash ซึ่งจะเพิ่มเกลือให้กับรหัสผ่านและแฮชด้วย 8 รอบ MD5 โดยค่าเริ่มต้นจะใช้ MD5 เพราะมันรองรับแพลตฟอร์มทั้งหมด คุณสามารถกำหนดค่า PasswordHash เพื่อใช้ Blowfish หรือ Extended DES (ถ้ามี) แทน MD5 ด้วยอาร์กิวเมนต์หรือคุณสมบัติ constructor $ portable_hashes



โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.