WordPress sử dụng loại băm nào?


Câu trả lời:


146

Mật khẩu WordPress đã thực hiện khung băm mật khẩu PHP di động , được sử dụng trong Hệ thống quản lý nội dung như WordPress và Drupal.

Họ đã từng sử dụng MD5 trong các phiên bản cũ hơn, nhưng thật đáng buồn cho tôi, không còn nữa. Bạn có thể tạo băm bằng cách sử dụng lược đồ mã hóa này tại http://scriptserver.mainframe8.com/wordpress_password_hasher.php .


12
có ai đó bắt gặp câu hỏi cũ này như tôi đã làm xin lưu ý rằng MD5 không còn được chấp nhận. nếu bạn có> PHP 5.5.0, hãy sử dụng password_hashhàm mới . nếu bạn chỉ có> PHP 5.3.7, hãy sử dụng thư viện tương thích tại đây github.com/ircmaxell/password_compat
Andrew Brown

14
Tôi không biết điều này có giúp ích gì không, nhưng WP vẫn sẽ sử dụng MD5 ngay lần đầu tiên bạn sử dụng Mật khẩu, sau đó nó sẽ "muối" nó. Vì vậy, nếu bạn có quyền truy cập vào DB, sử dụng MyPHPAdmin, bạn có thể thay đổi PW thành "MyPass", chọn MD5 trong trình đơn thả xuống "Chức năng" và nó sẽ lưu dưới dạng MD5 thẳng. Đăng nhập vào Wordpress và nó sẽ thay đổi nó thành phiên bản "mặn" với $ P $ B __ / được thêm vào.
BillyNair

Về cơ bản, nếu người dùng KHÔNG đăng nhập bằng PW, nó vẫn sẽ ở định dạng MD5, nó sẽ trông giống như bất kỳ ai khác có cùng PW. Khi bạn đăng nhập, ngay cả với CÙNG CHÍNH XÁC PW, nó sẽ đổi thành "muối" của riêng bạn, vì vậy bạn và bạn của bạn, đăng nhập cùng lúc với cùng một PW, "MD5 mặn" của bạn sẽ khác. Có nghĩa là, không có cách nào để truy vấn DB để kiểm tra xem PW đã được thay đổi từ mặc định hay chưa, vì WP sẽ thay đổi nó thành phiên bản muối, ngay cả khi nó giống như mặc định.
BillyNair

@AndrewBrown, tôi không đồng ý rằng MD5 không còn được chấp nhận. Có thể đúng khi tạo pass từ CMS, nhưng hãy thử DB Level..tôi vẫn hoạt động. Đến ngày tôi mất mật khẩu WP; Tôi đang đăng nhập vào phpMyAdmin và tạo băm MD5 cho các trường mật khẩu trong bảng wp_users và nó hoạt động ... Google: tự đặt lại mật khẩu quản trị viên WordPress .. xem câu trả lời của johnMetta.
wpcoder

3
@wpcoder MD5 không có câu hỏi nào được hỏi, không an toàn về mật mã 100% và không được chấp nhận để sử dụng làm phương thức lưu trữ mật khẩu băm.
Andrew Brown

21
$hash_type$salt$password

Nếu hàm băm không sử dụng muối, thì không có $dấu hiệu nào cho điều đó. Băm thực tế trong trường hợp của bạn là sau lần thứ 2$

Lý do cho điều này là, vì vậy bạn có thể có nhiều loại băm với các loại muối khác nhau và cung cấp chuỗi đó thành một hàm biết cách khớp nó với một số giá trị khác.


cảm ơn nhưng tôi nghĩ rằng băm md5 phải ở dạng hex, như thế này: b1946ac92492d2347c6235b4d2611184 tại sao hàm băm này có ký tự AZ và. trong đó? nó có phải là băm md5 không?

Có thể là loại băm được sử dụng. Hash chỉ là một chuỗi kích thước cố định. Có thể chứa bất cứ thứ gì bạn muốn.
Chờ đợi Ólafur

@Amanda Kumar. Rất muộn cho bữa tiệc này, nhưng MD5 tạo ra giá trị 128 bit (16 byte). Giá trị đó có thể được lưu trữ và biểu diễn theo nhiều cách khác nhau, ví dụ như chuỗi hex, chuỗi Base64 hoặc dữ liệu thô trong tệp. Bạn thường thấy các giá trị MD5 được biểu thị bằng hex, tuy nhiên WordPress sử dụng Base64 thay thế. Giá trị hex của bạn sẽ là sZRqySSS0jR8YjW00mERhA == trong Base64, sử dụng ít hơn 25% ký tự so với hex để biểu thị cùng một dữ liệu.
jordanbtucker

14

MD5 làm việc cho tôi thay đổi cơ sở dữ liệu của tôi bằng tay. Xem: Đặt lại mật khẩu của bạn


1
không có điều này không phải là một md5 hash đơn giản, băm md5 đơn giản như thế này: b1946ac92492d2347c6235b4d2611184 tôi đã nghe nó dựa trên md5, nhưng có thể một người nào đó xin vui lòng cho tôi biết những gì loại băm nó sử dụng và lựa chọn những gì để seelect trong passwordspro

24
MD5 sẽ hoạt động nếu được nhập thủ công vào bảng, nhưng khi đăng nhập lần đầu, WP sẽ viết lại bằng cách sử dụng hàm băm của chính nó để nó hoạt động tốt để đặt lại mật khẩu nhưng không nhiều hơn thế.
GiladG

1
@FranciscoCorralesMorales - nhập PassWord như trong DB sau đó chọn MD5 từ trình đơn thả xuống vẫn hoạt động. Bạn cũng có thể sao chép / dán chuỗi mã hóa MD5 vào hộp và không chọn bất cứ thứ gì và nó sẽ hoạt động (vì vậy, nếu PW của bạn là "qwertyuiop" thì ND5 của bạn là "6eea9b7ef19179a06954edd0f6c05ceb". Nếu bạn sử dụng mật khẩu "qwerty" MD5 "hoặc sử dụng hàm băm dài đó và không chọn bất cứ thứ gì, lưu DB và sau đó đăng nhập vào WordPress bằng cách sử dụng" qwertyuiop "và nó sẽ hoạt động)
BillyNair

12

Để đặt lại mật khẩu theo cách thủ công trong Wordpress DB, hàm băm MD5 đơn giản là đủ. (xem lý do bên dưới)

Để ngăn chặn khả năng tương thích ngược, mật khẩu băm MD5 được lưu trữ trong cơ sở dữ liệu vẫn hợp lệ. Khi người dùng đăng nhập bằng mật khẩu như vậy, WordPress phát hiện MD5 đã được sử dụng, kiểm tra lại mật khẩu bằng phương pháp an toàn hơn và lưu trữ hàm băm mới trong cơ sở dữ liệu.

Nguồn: http://eamann.com/tech/wordpress-password-hashing/

Cập nhật: đây là câu trả lời được đăng vào năm 2014. Tôi không biết liệu nó có còn hoạt động cho phiên bản WP mới nhất hay không vì tôi không làm việc với WP nữa.


Lưu băm MD5 không hoạt động nữa. Nguồn: Tôi vừa thử nó.
Jay Jee

Chỉ cần thử nó và đăng nhập. MD5 đã tự động chuyển đổi thành băm wp. Phiên bản Wp 5.1
Miro

10

Tôi gặp vấn đề tương tự khi tìm hiểu loại Hash nào mà Wordpress sử dụng.

Đó là mật khẩu băm wp .

Thí dụ

So sánh mật khẩu đã được băm với chuỗi văn bản đơn giản của nó:

<?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";
}
?>

Xem các liên kết sau: https://codex.wordpress.org/Function_Reference/wp_hash_password

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

Nó sử dụng PasswordHash, thêm muối vào mật khẩu và băm nó với 8 lượt MD5.


9

Nó phụ thuộc ít nhất vào phiên bản PHP được sử dụng. wp-includes/class-phpass.phpchứa tất cả các câu trả lời.


7

Cách tốt nhất để làm điều này là sử dụng lớp WordPress để xác thực người dùng. Đây là giải pháp của tôi:

1. Bao gồm tệp WordPress PHP sau:

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

2. Tạo một đối tượng của PasswordHashlớp:

$wp_hasher = new PasswordHash(8, true);

3. CheckPasswordchức năng gọi để xác thực người dùng:

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

4. kiểm tra $checkbiến:

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

Xin lưu ý rằng: $passwordlà mật khẩu chưa được băm trong văn bản rõ ràng trong khi đó $row['user_pass']là mật khẩu được băm mà bạn cần tìm nạp từ cơ sở dữ liệu.


2
Câu trả lời không rõ ràng nhưng mật khẩu $ là mật khẩu chưa được băm trong văn bản rõ ràng trong khi $ row ['user_pass'] là mật khẩu được băm mà bạn cần tự tìm nạp từ db.
Advait S

5

Bắt đầu phpMyAdmin và truy cập wp_users từ ví dụ wordpress của bạn. Chỉnh sửa bản ghi và chọn chức năng user_pass để khớp với MD5. Viết chuỗi sẽ là mật khẩu mới của bạn trong GIÁ TRỊ. Nhấp, ĐI. Đến trang web wordpress của bạn và nhập mật khẩu mới của bạn. Quay lại với phpMyAdmin, bạn sẽ thấy WP đã thay đổi HASH thành một cái gì đó như $ P $ B ... hãy tận hưởng!


xác nhận 2017 cài đặt WP năm 2019!
Gerard ONeill

2

Wordpress sử dụng băm mật khẩu MD5 . Tạo một hàm băm của một mật khẩu văn bản đơn giản. Trừ khi toàn cầu $ wp_hasher được thiết lập, việc triển khai mặc định sử dụng PasswordHash, thêm muối vào mật khẩu và băm nó với 8 lần truyền MD5. MD5 được sử dụng theo mặc định vì nó được hỗ trợ trên tất cả các nền tảng. Bạn có thể định cấu hình PasswordHash để sử dụng Blowfish hoặc mở rộng DES (nếu có) thay vì MD5 với đối số hoặc thuộc tính của hàm tạo $ Portable_hashes.


2

bao gồm_once ('../../../ wp-config.php');

$ wpdb toàn cầu;

$ password = wp_hash_password ("mật khẩu của bạn");


Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.