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.