Hướng dẫn php encryption w3schools - mã hóa php w3schools


❮ Tham chiếu chuỗi PHP


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

Hàm Crypt () trả về chuỗi băm bằng thuật toán DES, BLOWFIM 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 các thuật toán nào có sẵn và các thuật toán nào sẽ sử dụng khi nó được cài đặt.

Thông 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ần muối. Hãy chắc chắn để chỉ định một 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.

Constants:

  • . 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.
  • . Chúng được mã hóa dưới dạng ký tự có thể in, 6 bit mỗi ký tự, đầu tiên là ký tự ít quan trọng nhất. Các giá trị 0 đến 63 được mã hóa là "./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 bị lỗi.
  • [Crypt_md5] - băm MD5 với muối 12 ký tự bắt đầu với $ 1 $
  • . . 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ề chuỗi có độ dài bằng không. Tham số "$" là logarit cơ sở-2 của số lần lặp cho thuật toán băm bashfish bash bên dưới và phải nằm trong phạm vi 04-31. Các giá trị bên ngoài phạm vi này sẽ khiến hàm bị lỗi.
  • [Crypt_sha_256] - 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 "vòng = $", giá trị số của n được sử dụng để chỉ ra bao nhiêu lần vòng băm nên được thực thi, giống như tham số chi phí trên cá blow. Số lượng vòng mặc định là 5000, có tối thiểu 1000 và tối đa là 999.999.999. Bất kỳ lựa chọn N bên ngoài phạm vi này sẽ bị cắt theo giới hạn gần nhất.
  • [Crypt_sha_512] - 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 "vòng = $", giá trị số của n được sử dụng để chỉ ra bao nhiêu lần vòng băm nên được thực thi, giống như tham số chi phí trên cá blow. Số lượng vòng mặc định là 5000, có tối thiểu 1000 và tối đa là 999.999.999. Bất kỳ lựa chọn N bên ngoài phạm vi này sẽ bị cắt theo giới hạn gần nhất.

Trên các hệ thống nơi 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. There is no decrypt function. The crypt() function uses a one-way algorithm.


Cú pháp

Giá trị tham số

Tham sốSự mô tả
strYêu cầu. Chỉ định chuỗi được băm
MuốiKhông bắt buộc. Một chuỗi muối để căn cứ băm trên


Chi tiết kỹ thuật

Giá trị trở lại:Trả về chuỗi được mã hóa hoặc một 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 muối bị bỏ qua. Php 5.3.7 - Đã thêm $ 2x $ và $ 2y $ Blowfish.php 5.3.2 - Đã thêm SHA -256 và SHA -512. Đã sửa lỗi hành vi đánh cá trên các vòng không hợp lệ trả về "thất bại" chuỗi ("*0" hoặc "*1"), thay vì rơi trở lại des.php 5.3.0 - hiện tại và các thuật toán cá thổi 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.
PHP 5.3.7 - Added $2x$ and $2y$ Blowfish modes.
PHP 5.3.2 - Added SHA-256 and SHA-512. Fixed Blowfish behavior on invalid rounds returns "failure" string ("*0" or "*1"), instead of falling back to DES.
PHP 5.3.0 - PHP now contains its own implementation for MD5 crypt, Standard DES, Extended DES and the Blowfish algorithms and will use that if the system lacks of support for one or more of the algorithms.

Nhiều ví dụ hơn

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 "mở rộng des:" .crypt ('cái gì đó', '_ s4..some'). "\ n";} other {echo "mở rộng des không được hỗ trợ. \ n";} (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"; } khác {echo "md5 không được hỗ trợ. \ n";} (CRYPT_MD5 == 1)
{
echo "MD5: ".crypt('something','$1$somethin$')."\n
"
;
}
else
{
echo "MD5 not supported.\n
"
;
}

if (crypt_blowfish == 1) {echo "blowfish:" .crypt ('cái gì đó', '$ 2a $ 09 $ anexamplestringforsalt $'). "\ n";} (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 ('cái gì đó', '$ 5 $ vòng = 5000 $ anexamplestringforsaltalt $'). "\ n"; } khác {echo "sha-256 không được hỗ trợ. \ n";} (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 ('cái gì đó', '$ 6 $ vòng = 5000 $ anexamplestringforsalt $'); } khác {echo "sha-512 không được hỗ trợ.";}?> (CRYPT_SHA512 == 1)
{
echo "SHA-512: ".crypt('something','$6$rounds=5000$anexamplestringforsalt$');
}
else
{
echo "SHA-512 not supported.";
}
?>

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

Standard DES: stqAdD7zlbByIExtended DES: _S4..someQXidlBpTUu6MD5: $1$somethin$4NZKrUlY6r7K7.rdEOZ0w.Blowfish: $2a$09$anexamplestringforsaleLouKejcjRlExmf1671qw3Khl49R3dfuSHA-256: $5$rounds=5000$anexamplestringf$KIrctqsxo2wrPg5Ag/hs4jTi4PmoNKQUGWFXlVy9vu9 SHA-512: $6$rounds=5000$ anexamplestringf $ oo0skoadufxkqxjpwzo05wgrhg0dhuapbaou/ onbgpceklf/ 7ovm5Wn6an0w2vwuga0o24olzgqpp1xki6llq0.
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