Hướng dẫn how to encrypt password in mysql database using php - cách mã hóa mật khẩu trong cơ sở dữ liệu mysql bằng php

Cách tốt nhất để mã hóa và giải mã mật khẩu là sử dụng thư viện tiêu chuẩn trong PHP vì phương pháp mã hóa và giải mã mật khẩu đúng cách từ đầu rất phức tạp và liên quan đến nhiều khả năng của các lỗ hổng bảo mật. Sử dụng thư viện tiêu chuẩn đảm bảo rằng việc triển khai băm được xác minh và tin cậy.

Lưu ý: Điều này sử dụng API mật khẩu PHP có sẵn trong phiên bản 5.5.0 trở lên. This uses the PHP Password API available in version 5.5.0 and above.

Mã hóa mật khẩu: Để tạo hàm băm từ chuỗi, chúng tôi sử dụng & nbsp; hàm password_hash (). To generate a hash from the string, we use the password_hash() function.

Syntax:

string password_hash(string $password, 
          mixed $algo, [array $options])

Hàm password_hash () tạo ra một hàm băm mật khẩu mới của chuỗi bằng một trong các thuật toán băm có sẵn. Tuy nhiên, nó trả về băm dài 60 ký tự, tuy nhiên, vì các thuật toán mới và mạnh hơn sẽ được thêm vào PHP, độ dài của băm có thể tăng. Do đó, nên phân bổ 255 ký tự cho cột có thể được sử dụng để lưu trữ băm trong cơ sở dữ liệu.password_hash() function creates a new password hash of the string using one of the available hashing algorithm. It returns the hash that is currently 60 character long, however, as new and stronger algorithms will be added to PHP, the length of the hash may increase. It is therefore recommended to allocate 255 characters for the column that may be used to store the hash in database.

Các thuật toán sau đây hiện đang được hỗ trợ khi sử dụng chức năng này:

  • PASSWORD_DEFAULT
  • PASSWORD_BCRYPT
  • PASSWORD_ARGON2I
  • PASSWORD_ARGON2ID

Các tùy chọn bổ sung có thể được chuyển cho chức năng này có thể được sử dụng để đặt chi phí mã hóa, muối sẽ được sử dụng trong quá trình băm, vv trong mảng Tùy chọn $.$options array.

Ví dụ dưới đây hiển thị phương thức sử dụng phương thức password_hash ():password_hash() method:

Example:

PHP

  $plaintext_password =

bool password_verify(string $password, string $hash)
0
bool password_verify(string $password, string $hash)
1

  

bool password_verify(string $password, string $hash)
3
bool password_verify(string $password, string $hash)
4$plaintext_password
bool password_verify(string $password, string $hash)
6

bool password_verify(string $password, string $hash)
7
bool password_verify(string $password, string $hash)
8

  

Password Verified!
0
Password Verified!
1
Password Verified!
222213____11

Password Verified!
5

Output:

Tạo hàm băm: $ 2Y $ 10 $ 7RLSVRVYTQORAPKDOQMKHETJF6H9LJHNGR4HJMSM2LHOBJBW5EQH6

Giải mã mật khẩu: Để giải mã mật khẩu băm và truy xuất chuỗi gốc, chúng tôi sử dụng hàm password_verify (). To decrypt a password hash and retrieve the original string, we use the password_verify() function.

Syntax:

bool password_verify(string $password, string $hash)

Hàm password_verify () xác minh rằng băm đã cho khớp với mật khẩu đã cho, được tạo bởi hàm password_hash (). Nó trả về đúng nếu mật khẩu và băm phù hợp, hoặc sai.password_verify() function verifies that the given hash matches the given password, generated by the password_hash() function. It returns true if the password and hash match, or false otherwise.

PHP

  $plaintext_password =

bool password_verify(string $password, string $hash)
0
bool password_verify(string $password, string $hash)
1

  

bool password_verify(string $password, string $hash)
3
bool password_verify(string $password, string $hash)
4$plaintext_password
bool password_verify(string $password, string $hash)
6

$hashed_password = hash('sha512', $_POST['password']);
5
bool password_verify(string $password, string $hash)
1

  

Password Verified!
0
Password Verified!
1
Password Verified!
222213____11

Tạo hàm băm: $ 2Y $ 10 $ 7RLSVRVYTQORAPKDOQMKHETJF6H9LJHNGR4HJMSM2LHOBJBW5EQH6

Giải mã mật khẩu: Để giải mã mật khẩu băm và truy xuất chuỗi gốc, chúng tôi sử dụng hàm password_verify ().

Hàm password_verify () xác minh rằng băm đã cho khớp với mật khẩu đã cho, được tạo bởi hàm password_hash (). Nó trả về đúng nếu mật khẩu và băm phù hợp, hoặc sai.

  

bool password_verify(string $password, string $hash)
3
$hashed_password = hash('sha512', $_POST['password']);
4

  2

Password Verified!
5

Output:

Password Verified!

  

$hashed_password = hash('sha512', $_POST['password']);
8
$hashed_password = hash('sha512', $_POST['password']);
9$plaintext_password
INSERT INTO users (username, password, email)
VALUES ('$_POST[username]', '$hashed_password', '$_POST[email]');
1
bool password_verify(string $password, string $hash)
3
INSERT INTO users (username, password, email)
VALUES ('$_POST[username]', '$hashed_password', '$_POST[email]');
3


Bạn có thể sử dụng chức năng 4 để băm mật khẩu của mình:

$hashed_password = hash('sha512', $_POST['password']);

Sau đó sửa đổi câu lệnh chèn của bạn để chèn mật khẩu băm của bạn vào cơ sở dữ liệu:

INSERT INTO users (username, password, email)
VALUES ('$_POST[username]', '$hashed_password', '$_POST[email]');

Xin lưu ý rằng câu lệnh SQL của bạn dễ bị tiêm SQL vì bạn đang sử dụng đầu vào người dùng không được giải thích. Để cải thiện bảo mật và để bảo vệ tính toàn vẹn của dữ liệu của bạn, vui lòng xem xét việc thoát và xác thực đầu vào trước khi sử dụng nó trong một câu lệnh SQL. Một cách để thực hiện điều này là thông qua 5:

$escaped_username = mysqli_real_escape_string( $con, $_POST['username'] );
$escaped_email = mysqli_real_escape_string( $con, $_POST['email'] );

Làm thế nào chúng ta có thể mã hóa mật khẩu bằng PHP?

PHP bao gồm một thuật toán băm để mã hóa mật khẩu. Đối với hầu hết các phần, nó được sử dụng trong các chức năng để mã hóa mật khẩu là Crypt (), password_hash () và md5 ().crypt(), password_hash() and md5().

Mật khẩu MySQL được mã hóa như thế nào?

Máy chủ MySQL sử dụng chức năng mật khẩu để mã hóa mật khẩu MySQL để lưu trữ trong cột Mật khẩu của bảng cấp người dùng. Giá trị được trả về bởi hàm mật khẩu là chuỗi băm hoặc null nếu đối số là null. Hàm Mật khẩu chấp nhận một tham số là chuỗi được mã hóa. to encrypt MySQL passwords for storage in the Password column of the user grant table. The value returned by the PASSWORD function is a hashed string, or NULL if the argument was NULL. The PASSWORD function accepts one parameter which is the string to be encrypted.

Làm cách nào để thay đổi mật khẩu được mã hóa trong mysql?

Vui lòng làm theo các bước được đề cập dưới đây để thay đổi mật khẩu người dùng cho cơ sở dữ liệu MySQL:..
Bước 1: Mở bảng điều khiển MySQL hoặc sử dụng phpmyadmin ..
Bước 2: Đăng nhập bằng cách nhập tại dấu nhắc shell [sử dụng CLI] ....
Bước 3: Nhập mật khẩu gốc.....
Bước 4: MySQL> Hiển thị cơ sở dữ liệu;....
Bước 5: MySQL> Sử dụng MySQL;....
Bước 6: MySQL> Hiển thị bảng ;.

Làm thế nào bạn có thể mã hóa cơ sở dữ liệu để bảo mật?

Mã hóa một cơ sở dữ liệu..
Mở cơ sở dữ liệu ở chế độ độc quyền.Làm cách nào để mở cơ sở dữ liệu ở chế độ độc quyền?....
Trên tab Tệp, nhấp vào thông tin, sau đó nhấp vào mã hóa bằng mật khẩu.Hộp thoại SET DATABASE Mật khẩu xuất hiện ..
Nhập mật khẩu của bạn vào hộp mật khẩu, nhập lại vào hộp xác minh, sau đó bấm OK.Ghi chú:.