Hướng dẫn dùng decrupt trong PHP


❮ Tham chiếu chuỗi PHP


Định nghĩa và Cách sử dụng

Hàm crypt () trả về một chuỗi được băm bằng cách sử dụng các thuật toán DES, Blowfish hoặc MD5.

Chức năng này hoạt động khác nhau trên các hệ điều hành khác nhau. PHP kiểm tra những thuật toán nào có sẵn và những thuật toán nào sẽ sử dụng khi nó được cài đặt.

Tham số muối là tùy chọn. Tuy nhiên, crypt () tạo ra một mật khẩu yếu mà không có muối. Đảm bảo chỉ định một loại muối đủ mạnh để bảo mật tốt hơn.

Có một số hằng số được sử dụng cùng với hàm crypt (). Giá trị của các hằng số này được đặt bởi PHP khi nó được cài đặt.

Hằng số:

  • [CRYPT_STD_DES] - Hàm băm dựa trên DES tiêu chuẩn với hai muối ký tự từ bảng chữ cái "./0-9A-Za-z". Sử dụng các ký tự không hợp lệ trong muối sẽ khiến chức năng này bị lỗi.
  • [CRYPT_EXT_DES] - Hàm băm dựa trên DES mở rộng với muối chín ký tự bao gồm dấu gạch dưới, theo sau là 4 byte số lần lặp và 4 byte muối. Chúng được mã hóa dưới dạng ký tự có thể in được, 6 bit cho mỗi ký tự, ký tự ít quan trọng nhất trước tiên. Các giá trị từ 0 đến 63 được mã hóa thành "./0-9A-Za-z". Sử dụng các ký tự không hợp lệ trong muối sẽ khiến hàm bị lỗi.
  • [CRYPT_MD5] - Hàm băm MD5 với muối 12 ký tự bắt đầu bằng $ 1 $
  • [CRYPT_BLOWFISH] - Blowfish băm với một muối bắt đầu bằng $ 2a $, $ 2x $ hoặc $ 2y $, tham số giá hai chữ số "$" và 22 ký tự từ bảng chữ cái "./0-9A-Za-z" . Việc sử dụng các ký tự bên ngoài bảng chữ cái sẽ khiến hàm này trả về một chuỗi có độ dài bằng không. Tham số "$" là logarit cơ số 2 của số lần lặp lại cho thuật toán băm cơ bản dựa trên Blowfish và phải nằm trong phạm vi 04-31. Các giá trị nằm ngoài phạm vi này sẽ làm cho chức năng bị lỗi.
  • [CRYPT_SHA_256] - Hàm băm SHA-256 với muối 16 ký tự bắt đầu với $ 5 $. Nếu chuỗi muối bắt đầu bằng "round = $", giá trị số của N được sử dụng để cho biết số lần vòng lặp băm sẽ được thực thi, giống như tham số chi phí trên Blowfish. Số lượng vòng quay mặc định là 5000, tối thiểu là 1000 và tối đa là 999.999.999. Bất kỳ lựa chọn nào của N nằm ngoài phạm vi này sẽ bị cắt bớt đến giới hạn gần nhất.
  • [CRYPT_SHA_512] - Hàm băm SHA-512 với muối 16 ký tự bắt đầu với $ 6 $. Nếu chuỗi muối bắt đầu bằng "round = $", giá trị số của N được sử dụng để cho biết số lần vòng lặp băm sẽ được thực thi, giống như tham số chi phí trên Blowfish. Số lượng vòng quay mặc định là 5000, tối thiểu là 1000 và tối đa là 999.999.999. Bất kỳ lựa chọn nào của N nằm ngoài phạm vi này sẽ bị cắt bớt đến giới hạn gần nhất.

Trên các hệ thống mà hàm này hỗ trợ nhiều thuật toán, các hằng số ở trên được đặt thành "1" nếu được hỗ trợ và "0" nếu không.

Lưu ý: Không có chức năng giải mã. Hàm crypt () sử dụng thuật toán một chiều.


Cú pháp

Giá trị tham số

ParameterDescription
str Required. Specifies the string to be hashed
salt Optional. A salt string to base the hashing on


Chi tiết kỹ thuật

Giá trị trả lại:Trả về chuỗi được mã hóa hoặc chuỗi ngắn hơn 13 ký tự và được đảm bảo khác với muối khi bị lỗi
Phiên bản PHP:4+
Changelog:PHP 5.6.0 - Hiển thị cảnh báo bảo mật E_NOTICE nếu bỏ qua muối .
PHP 5.3.7 - Đã thêm chế độ Blowfish $ 2x $ và $ 2y $.
PHP 5.3.2 - Đã thêm SHA-256 và SHA-512. Đã sửa hành vi Blowfish trên các vòng không hợp lệ trả về chuỗi "fail" ("* 0" hoặc "* 1"), thay vì quay trở lại DES.
PHP 5.3.0 - PHP hiện có triển khai riêng của nó cho MD5 crypt, Standard DES, Extended DES và các thuật toán Blowfish và sẽ sử dụng nó nếu hệ thống thiếu hỗ trợ cho một hoặc nhiều thuật toán.

Các ví dụ khác

Thí dụ

Trong ví dụ này, chúng tôi sẽ kiểm tra các thuật toán khác nhau:


if (CRYPT_STD_DES == 1)
{
echo "Standard DES: ".crypt('something','st')."\n
"
;
}
else
{
echo "Standard DES not supported.\n
"
;
}

if (CRYPT_EXT_DES == 1)
{
echo "Extended DES: ".crypt('something','_S4..some')."\n
"
;
}
else
{
echo "Extended DES not supported.\n
"
;
}

if (CRYPT_MD5 == 1)
{
echo "MD5: ".crypt('something','$1$somethin$')."\n
"
;
}
else
{
echo "MD5 not supported.\n
"
;
}

if (CRYPT_BLOWFISH == 1)
{
echo "Blowfish: ".crypt('something','$2a$09$anexamplestringforsalt$')."\n
"
;
}
else
{
echo "Blowfish DES not supported.\n
"
;
}

if (CRYPT_SHA256 == 1)
{
echo "SHA-256: ".crypt('something','$5$rounds=5000$anexamplestringforsalt$')."\n
"
; }
else
{
echo "SHA-256 not supported.\n
"
;
}

if (CRYPT_SHA512 == 1)
{
echo "SHA-512: ".crypt('something','$6$rounds=5000$anexamplestringforsalt$');
}
else
{
echo "SHA-512 not supported.";
}
?>

Đầu ra của đoạn mã trên có thể là (tùy thuộc vào hệ điều hành):

Standard DES: stqAdD7zlbByI
Extended DES: _S4..someQXidlBpTUu6
MD5: $1$somethin$4NZKrUlY6r7K7.rdEOZ0w.
Blowfish: $2a$09$anexamplestringforsaleLouKejcjRlExmf1671qw3Khl49R3dfu
SHA-256: $5$rounds=5000$anexamplestringf$KIrctqsxo2wrPg5Ag/hs4jTi4PmoNKQUGWFXlVy9vu9
SHA-512: $6$rounds=5000$anexamplestringf$Oo0skOAdUFXkQxJpwzO05wgRHG0dhuaPBaOU/
oNbGpCEKlf/7oVM5wn6AN0w2vwUgA0O24oLzGQpp1XKI6LLQ0.



❮ Tham chiếu chuỗi PHP