PHP sử dụng hàm băm nào?
Mặt tiền Show
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ìnhTrì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 Sử dụng cơ bảnBăm mật khẩuBạn có thể băm mật khẩu bằng cách gọi phương thức
Điều chỉnh hệ số công việc BcryptNếu bạn đang sử dụng thuật toán Bcrypt, phương pháp 0;
Điều chỉnh hệ số làm việc Argon2Nếu bạn đang sử dụng thuật toán Argon2, phương pháp 2, 3 và 4;
Xác minh rằng mật khẩu khớp với hàm bămPhương thức 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ôngPhương pháp 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()Mặc dù hàm
Nhưng chức năng
Đó là nó. Tham số đầu tiên là chuỗi mật khẩu cần được băm và tham số thứ hai chỉ định thuật toán sẽ được sử dụng để tạo hàm băm Thuật toán mặc định hiện tại là bcrypt, nhưng một thuật toán mạnh hơn có thể được thêm vào làm mặc định sau này vào một thời điểm nào đó trong tương lai và có thể tạo ra một chuỗi lớn hơn. Nếu bạn đang sử dụng 1 trong các dự án của mình, hãy đảm bảo lưu trữ hàm băm trong một cột có dung lượng vượt quá 60 ký tự. Đặt kích thước cột thành 255 có thể là một lựa chọn tốt. Bạn cũng có thể sử dụng 2 làm tham số thứ hai. Trong trường hợp này, kết quả sẽ luôn dài 60 ký tựĐiều quan trọng ở đây là bạn không phải cung cấp giá trị muối hoặc thông số chi phí. API mới sẽ đảm nhận tất cả những điều đó cho bạn. Và muối là một phần của hàm băm, vì vậy bạn không cần phải lưu trữ riêng. Nếu bạn muốn cung cấp muối (hoặc chi phí) của riêng mình, bạn có thể làm như vậy bằng cách chuyển đối số thứ ba cho hàm, một mảng các tùy chọn
Bằng cách này, bạn luôn cập nhật các biện pháp bảo mật mới. Nếu sau này PHP quyết định triển khai thuật toán băm mạnh hơn, mã của bạn có thể tận dụng lợi thế của nó password_verify()Bây giờ bạn đã thấy cách tạo hàm băm bằng API mới, hãy xem cách xác minh mật khẩu. Hãy nhớ rằng bạn lưu trữ các giá trị băm trong cơ sở dữ liệu, nhưng đó là mật khẩu đơn giản mà bạn nhận được khi người dùng đăng nhập
Chỉ cần nhớ rằng muối là một phần của mật khẩu băm, đó là lý do tại sao chúng tôi không chỉ định riêng nó ở đây mật khẩu_cần_rehash()Nếu bạn cần sửa đổi các tham số muối và chi phí cho chuỗi băm thì sao? . Hơn nữa, PHP có thể thay đổi cài đặt mặc định của thuật toán băm. Trong tất cả các trường hợp này, bạn sẽ muốn thử lại các mật khẩu hiện có mật khẩu_cần_rehash()giúp kiểm tra xem hàm băm được chỉ định có thực hiện một thuật toán cụ thể hay không và sử dụng các tùy chọn cụ thể như chi phí và muối khi được tạo
Hãy nhớ rằng bạn sẽ cần làm điều này khi người dùng cố gắng đăng nhập vào trang web của bạn vì đây là lần duy nhất bạn có quyền truy cập vào mật khẩu đơn giản password_get_info()
Phần kết luậnAPI băm mật khẩu mới chắc chắn dễ sử dụng hơn là mò mẫm với hàm PHP sử dụng thuật toán băm nào?PHP có tổng cộng 46 thuật toán băm đã đăng ký, trong đó “sha1”, “sha256”, “md5”, “haval160, 4” are the most popular ones. $string: This parameter expects the string to be hashed. $getRawOutput: This optional parameter expects a boolean value, on TRUE the function returns the hash in a raw binary format.
PHP có hỗ trợ sha256 không?Hàm crypt() trong PHP cho phép bạn tạo hàm băm của chuỗi đã chỉ định bằng nhiều thuật toán băm khác nhau. Một số giá trị băm được hỗ trợ của hàm này bao gồm blowfish, SHA-256 và MD5 .
sha256 trong PHP là gì?Định nghĩa và cách sử dụng
. Giá trị trả về là một chuỗi có hexit (giá trị thập lục phân). The hash() function returns a hash value for the given data based on the algorithm like (md5, sha256). The return value is a string with hexits (hexadecimal values).
PHP password_hash có sử dụng muối không?password_hash() sẽ tạo ra các loại muối khác nhau cho mỗi mật khẩu . Nó sẽ tăng sức mạnh bảo mật mật khẩu của bạn. |