PHP sử dụng hàm băm nào?

Mặt tiền Hash của Laravel cung cấp hàm băm Bcrypt và Argon2 an toàn để lưu trữ mật khẩu người dùng. Nếu bạn đang sử dụng một trong các bộ khởi động ứng dụng Laravel, Bcrypt sẽ được sử dụng để đăng ký và xác thực theo mặc định

Bcrypt là một lựa chọn tuyệt vời để băm mật khẩu vì "hệ số công việc" của nó có thể điều chỉnh được, điều đó có nghĩa là thời gian cần để tạo hàm băm có thể tăng lên khi sức mạnh phần cứng tăng lên. Khi băm mật khẩu, chậm là tốt. Thuật toán băm mật khẩu càng mất nhiều thời gian thì người dùng độc hại càng mất nhiều thời gian để tạo "bảng cầu vồng" của tất cả các giá trị băm chuỗi có thể được sử dụng trong các cuộc tấn công vũ phu chống lại các ứng dụng

Cấu hình

Trình điều khiển băm mặc định cho ứng dụng của bạn được định cấu hình trong tệp cấu hình config/hashing.php của ứng dụng. Hiện tại có một số trình điều khiển được hỗ trợ. Bcrypt và Argon2 [các biến thể Argon2i và Argon2id]

Sử dụng cơ bản

Băm mật khẩu

Bạn có thể băm mật khẩu bằng cách gọi phương thức make trên mặt tiền Hash

namespace App\Http\Controllers;

use App\Http\Controllers\Controller;

use Illuminate\Http\Request;

use Illuminate\Support\Facades\Hash;

class PasswordController extends Controller

* Update the password for the user.

* @param \Illuminate\Http\Request $request

* @return \Illuminate\Http\Response

public function update[Request $request]

// Validate the new password length...

'password' => Hash::make[$request->newPassword]

Điều chỉnh hệ số công việc Bcrypt

Nếu bạn đang sử dụng thuật toán Bcrypt, phương pháp make cho phép bạn quản lý hệ số công việc của thuật toán bằng cách sử dụng tùy chọn

$hashed = Hash::make['password', [

0;

$hashed = Hash::make['password', [

Điều chỉnh hệ số làm việc Argon2

Nếu bạn đang sử dụng thuật toán Argon2, phương pháp make cho phép bạn quản lý hệ số công việc của thuật toán bằng cách sử dụng các tùy chọn

$hashed = Hash::make['password', [

2,

$hashed = Hash::make['password', [

3 và

$hashed = Hash::make['password', [

4;

$hashed = Hash::make['password', [

Ghi chú
Để biết thêm thông tin về các tùy chọn này, vui lòng tham khảo tài liệu PHP chính thức về hàm băm Argon

Xác minh rằng mật khẩu khớp với hàm băm

Phương thức

$hashed = Hash::make['password', [

5 được cung cấp bởi mặt tiền Hash cho phép bạn xác minh rằng một chuỗi văn bản thuần đã cho tương ứng với một hàm băm đã cho

________số 8_______

Xác định xem mật khẩu có cần được băm lại không

Phương pháp

$hashed = Hash::make['password', [

7 được cung cấp bởi mặt tiền Hash cho phép bạn xác định xem hệ số công việc mà trình băm sử dụng có thay đổi kể từ khi mật khẩu được băm hay không. Một số ứng dụng chọn thực hiện kiểm tra này trong quá trình xác thực của ứng dụng

Sử dụng bcrypt là phương pháp tốt nhất hiện được chấp nhận để băm mật khẩu, nhưng một số lượng lớn các nhà phát triển vẫn sử dụng các thuật toán cũ hơn và yếu hơn như MD5 và SHA1. Một số nhà phát triển thậm chí không sử dụng muối trong khi băm. API băm mới trong PHP 5. 5 nhằm mục đích thu hút sự chú ý đối với bcrypt trong khi che giấu sự phức tạp của nó. Trong bài viết này, tôi sẽ trình bày những kiến ​​thức cơ bản về cách sử dụng API băm mới của PHP

API băm mật khẩu mới hiển thị bốn chức năng đơn giản

  • password_hash[] – được sử dụng để băm mật khẩu
  • password_verify[] – được sử dụng để xác minh mật khẩu dựa trên hàm băm của nó
  • password_needs_rehash[] – được sử dụng khi mật khẩu cần được băm lại
  • password_get_info[] – trả về tên của thuật toán băm và các tùy chọn khác nhau được sử dụng trong khi băm

password_hash[]

Mặc dù hàm crypt[] là an toàn, nhưng nhiều người cho rằng hàm này quá phức tạp và dễ gây ra lỗi cho người lập trình. Sau đó, một số nhà phát triển sử dụng muối yếu và thuật toán yếu để tạo hàm băm, chẳng hạn như

Chủ Đề