PHP 7 - CSPRNG
Trong PHP 7, hai hàm mới sau đây được giới thiệu để tạo chuỗi và số nguyên an toàn bằng mật mã theo cách đa nền tảng.
random_bytes() - Tạo các byte giả ngẫu nhiên an toàn bằng mật mã.
random_int() - Tạo số nguyên giả ngẫu nhiên an toàn bằng mật mã.
random_bytes ()
random_bytes () tạo ra một chuỗi byte ngẫu nhiên mật mã có độ dài tùy ý thích hợp cho việc sử dụng mật mã, chẳng hạn như khi tạo muối, khóa hoặc vectơ khởi tạo.
Cú pháp
string random_bytes ( int $length )
Thông số
length - Độ dài của chuỗi ngẫu nhiên cần được trả về theo byte.
Giá trị trả lại
Trả về một chuỗi chứa số byte ngẫu nhiên được bảo mật bằng mật mã được yêu cầu.
Lỗi / Ngoại lệ
Nếu không thể tìm thấy một nguồn ngẫu nhiên thích hợp, một Ngoại lệ sẽ được ném ra.
Nếu các tham số không hợp lệ được cung cấp, a TypeError sẽ được ném.
Nếu cung cấp độ dài byte không hợp lệ, một Lỗi sẽ được đưa ra.
Thí dụ
<?php
$bytes = random_bytes(5);
print(bin2hex($bytes));
?>
Nó tạo ra đầu ra trình duyệt sau:
54cc305593
random_int ()
random_int() tạo ra các số nguyên ngẫu nhiên mật mã phù hợp để sử dụng khi các kết quả không thiên vị là rất quan trọng.
Cú pháp
int random_int ( int $min , int $max )
Thông số
min - Giá trị thấp nhất được trả về, phải là PHP_INT_MIN hoặc cao hơn.
max - Giá trị cao nhất được trả về, phải nhỏ hơn hoặc bằng PHP_INT_MAX.
Giá trị trả lại
Trả về một số nguyên ngẫu nhiên an toàn bằng mật mã trong phạm vi từ tối thiểu đến tối đa, bao gồm.
Lỗi / Ngoại lệ
Nếu không tìm được nguồn ngẫu nhiên thích hợp, Exception sẽ được ném.
Nếu các tham số không hợp lệ được cung cấp, a TypeError sẽ được ném.
Nếu tối đa nhỏ hơn tối thiểu, Error sẽ được ném.
Thí dụ
<?php
print(random_int(100, 999));
print("");
print(random_int(-1000, 0));
?>
Nó tạo ra đầu ra trình duyệt sau:
614
-882