Cách sử dụng hàm crypt() trong PHP

Cach Su Dung Ham Crypt Trong Php



Các mật mã () hàm trong PHP là một công cụ hữu ích cho mật mã được sử dụng để tạo hàm băm của chuỗi đã cho bằng thuật toán băm như DES tiêu chuẩn, DES mở rộng, MD5, Blowfish, SHA-256 và SHA-512. Hàm này được sử dụng để băm một chiều và mã hóa các chuỗi. Phải mất hai đối số: chuỗi được băm và một giá trị muối tùy chọn, được sử dụng để thêm độ phức tạp cho quá trình băm và làm cho nó an toàn hơn.

Trên một số hệ điều hành, chức năng này hoạt động khác nhau. Trong quá trình cài đặt, PHP kiểm tra các thuật toán khả dụng và được khuyến nghị. Hàm này được bao gồm trong phiên bản PHP 4 trở lên và chấp nhận một tham số bắt buộc và một tham số tùy chọn.

cú pháp

Một cú pháp đơn giản theo sau là mật mã () chức năng được đưa ra dưới đây:









hầm mộ ( $str , muối $ )

Hàm chấp nhận hai tham số:



  • $str: Tham số này là một chuỗi mà bạn muốn mã hóa. Chuỗi này có thể bị cắt ngắn trong quá trình tạo hàm băm, điều đó có nghĩa là nó sẽ không tính đến toàn bộ chuỗi dựa trên loại hàm băm.
  • $ muối: Tham số này được sử dụng để chọn phương pháp băm.

Hàm này sẽ trả về một chuỗi được mã hóa.



Làm cách nào để sử dụng hàm crypt() trong PHP?

Các mật mã () chức năng trong PHP có thể được sử dụng với các thuật toán băm mật mã khác nhau để mã hóa một chuỗi; đây là một số ví dụ về cách sử dụng mật mã () với các thuật toán băm khác nhau:





Hãy giải thích chi tiết các phương pháp này.

1: Sử dụng CRYPT_STD_DES

Các CRYPT_STD_DES là một trong những thuật toán băm được hỗ trợ bởi mật mã () chức năng trong PHP sử dụng Tiêu chuẩn DES (Chuẩn mã hóa dữ liệu) thuật toán để mã hóa. Khi đang sử dụng CRYPT_STD_DES , bạn cần cung cấp giá trị muối gồm hai ký tự làm đối số thứ hai cho mật mã () chức năng. Giá trị muối chỉ định biến thể khóa và độ phức tạp của quy trình mã hóa.



Ví dụ:



nếu như ( CRYPT_STD_DES == 1 ) {

tiếng vang 'DES tiêu chuẩn:' . hầm mộ ( 'chào mừng đến với linuxhint' , 'str' ) . ' \N ' ;

} khác {

tiếng vang 'Không hỗ trợ DES tiêu chuẩn. \N ' ;

}

?>

2: Sử dụng CRYPT_EXT_DES

Các CRYPT_EXT_DES là một thuật toán băm khác được hỗ trợ bởi mật mã () chức năng sử dụng DES mở rộng (Chuẩn mã hóa dữ liệu) thuật toán để mã hóa. DES mở rộng là phần mở rộng của thuật toán DES ban đầu, cung cấp không gian khóa lớn hơn và bảo mật được cải thiện.

để sử dụng CRYPT_EXT_DES , bạn cần cung cấp giá trị muối bắt đầu bằng _J9 theo sau là các ký tự bổ sung.

Ví dụ:



nếu như ( CRYPT_EXT_DES == 1 ) {

tiếng vang 'DES mở rộng:' . hầm mộ ( 'chào mừng đến với linuxhint' , '_J9..dutta' ) . ' \N ' ;

} khác {

tiếng vang 'Không hỗ trợ DES mở rộng. \N ' ;

}

?>

3: Sử dụng CRYPT_MD5

Các CRYPT_MD5 là một trong những thuật toán băm được hỗ trợ bởi mật mã () chức năng trong PHP sử dụng MD5 (Thuật toán phân loại thông báo 5 tạo ra giá trị băm 128 bit (16 byte) ) thuật toán để mã hóa.

để sử dụng CRYPT_MD5 , bạn cần cung cấp giá trị muối bắt đầu bằng $1$ theo sau là một số ký tự.

Ví dụ:



nếu như ( CRYPT_MD5 == 1 ) {

tiếng vang 'MD5: ' . hầm mộ ( 'chào mừng đến với linuxhint' , '$1$đang cố gắng$' ) . ' \N ' ;

} khác {

tiếng vang 'Không hỗ trợ MD5. \N ' ;

}

?>

4: Sử dụng CRYPT_BLOWFISH

Các CRYPT_BLOWFISH là một thuật toán băm được đề xuất rộng rãi được hỗ trợ bởi mật mã () trong PHP sử dụng thuật toán Blowfish để mã hóa. Blowfish là một mật mã khối khóa đối xứng được biết đến với khả năng bảo mật mạnh mẽ. để sử dụng CRYPT_BLOWFISH , bạn cần cung cấp giá trị muối, bắt đầu bằng $2y$ hoặc $2a$ , theo sau là thông số chi phí gồm hai chữ số, sau đó là giá trị muối thực tế.

Ví dụ:



nếu như ( CRYPT_BLOWFISH == 1 ) {

tiếng vang 'Cá thổi:' .

hầm mộ ( 'chào mừng đến với linuxhint' , '$2y$12$mkstringexforsaltparam' ) .

' \N ' ;

} khác {

tiếng vang 'Không ủng hộ Blowfish. \N ' ;

}

?>

5: Sử dụng CRYPT_SHA256

Một thuật toán băm khác được hỗ trợ bởi mật mã () chức năng là CRYPT_SHA256 sử dụng thuật toán SHA-256 (tạo ra giá trị băm 256 bit (32 byte)) để mã hóa. để sử dụng CRYPT_SHA256 , bạn cần cung cấp giá trị muối, bắt đầu bằng $5$ , theo sau là thông số chi phí gồm hai chữ số và sau đó là giá trị muối thực tế

Ví dụ:



nếu như ( CRYPT_SHA256 == 1 ) {

tiếng vang 'SHA-256:' .

hầm mộ ( 'chào mừng đến với linuxhint' , '$5$mkstringexforsaltparam$' ) .

' \N ' ;

} khác {

tiếng vang 'Không hỗ trợ SHA256. \N ' ;

}

?>

6: Sử dụng CRYPT_SHA512

Các CRYPT_SHA512 là một thuật toán băm hữu ích khác được hỗ trợ bởi mật mã () chức năng trong PHP sử dụng SHA-512 thuật toán để mã hóa. SHA-512 là một hàm băm mật mã được sử dụng rộng rãi để tạo ra giá trị băm 512-bit (64-byte). để sử dụng CRYPT_SHA512 , bạn cần cung cấp giá trị muối, bắt đầu bằng $6$ , theo sau là thông số chi phí có hai chữ số và sau đó là giá trị muối thực tế

Ví dụ:



nếu như ( CRYPT_SHA512 == 1 ) {

tiếng vang 'SHA-512:' .

hầm mộ ( 'chào mừng đến với linuxhint' , '$6$mkstringexforsaltparam$' ) .

' \N ' ;

} khác {

tiếng vang 'Không hỗ trợ SHA-512. \N ' ;

}

?>

Phần kết luận


PHP mật mã () có thể mã hóa các chuỗi đã băm và là kỹ thuật mã hóa một chiều hỗ trợ thuật toán được chỉ định. Bởi vì nó chỉ cho phép mã hóa và không giải mã, nên nó được gọi là thuật toán một chiều. Hàm này chấp nhận một tham số bắt buộc và một tham số tùy chọn, đồng thời trả về một chuỗi được mã hóa. Hướng dẫn này đã triển khai chức năng mật mã PHP bằng cách sử dụng CRYPT_STD_DES, CRYPT_EXT_DES, CRYPT_MD5, CRYPT_BLOWFISH, CRYPT_SHA256 , Và, CRYPT_SHA512 thuật toán.