Hướng dẫn how to create random alphanumeric in php? - làm thế nào để tạo chữ và số ngẫu nhiên trong php?

Hãy để tôi bắt đầu bài viết này bằng cách nói rằng hầu như không có sự kiện nào là thực sự ngẫu nhiên. Ngay cả kết quả của việc ném đồng xu cổ điển về lý thuyết cũng có thể được dự đoán nếu chúng ta biết ảnh hưởng của mọi yếu tố liên quan, như ma sát không khí, trọng lực và lực ban đầu.

Điều tương tự cũng được áp dụng cho việc tạo ra các số ngẫu nhiên và chuỗi chữ và số. Điều tốt nhất chúng ta có thể hy vọng là tạo ra các con số và chuỗi dường như không tuân theo một mô hình và thực tế không thể được dự đoán bởi kẻ tấn công.

Trong hướng dẫn này, chúng tôi sẽ bao gồm các kỹ thuật khác nhau để tạo ra các số ngẫu nhiên và chuỗi chữ và số trong PHP. Một số trong số chúng sẽ được bảo mật bằng mật mã, trong khi những người khác chỉ có nghĩa là sử dụng thông thường, như gán tên tệp giả ngẫu nhiên hoặc tạo URL và đề xuất tên người dùng.

Tìm hiểu PHP với một khóa học trực tuyến miễn phí

Nếu bạn muốn học PHP, hãy xem khóa học trực tuyến miễn phí của chúng tôi về các nguyên tắc cơ bản của PHP!

Hướng dẫn how to create random alphanumeric in php? - làm thế nào để tạo chữ và số ngẫu nhiên trong php?

Trong khóa học này, bạn sẽ tìm hiểu các nguyên tắc cơ bản của lập trình PHP. Bạn sẽ bắt đầu với những điều cơ bản, tìm hiểu cách PHP hoạt động và viết các vòng và chức năng PHP đơn giản. Sau đó, bạn sẽ xây dựng thành các lớp mã hóa cho lập trình hướng đối tượng đơn giản (OOP). Trên đường đi, bạn sẽ tìm hiểu tất cả các kỹ năng quan trọng nhất để viết ứng dụng cho web: bạn sẽ có cơ hội thực hành trả lời để nhận và đăng yêu cầu, phân tích cú pháp JSON, xác thực người dùng và sử dụng cơ sở dữ liệu MySQL.

Tạo số ngẫu nhiên trong PHP

Có ba chức năng khác nhau để tạo số ngẫu nhiên trong PHP. Tất cả chúng sẽ chấp nhận giá trị tối thiểu và tối đa có thể cho các số ngẫu nhiên và xuất một số ngẫu nhiên cho bạn. Đây là & nbsp; ____ ____ 10, & nbsp; ________ 11, và & nbsp;

Với & nbsp; ____ 13, các giá trị tối thiểu và tối đa của các số nguyên, bạn có thể tạo ra lời nói dối giữa & nbsp; ________ 14 & nbsp; và giá trị được trả về bởi & nbsp; ____ 15. Trước Php 7.1.0, chức năng này chậm hơn khoảng bốn lần so với & nbsp; ________ 16. Tuy nhiên, bắt đầu từ Php 7.1.0, nó đã được tạo ra một bí danh của & nbsp; ________ 16. Tuy nhiên, không giống như & nbsp;

Với & nbsp; ________ 16, các giá trị tối thiểu và tối đa của các số nguyên, bạn có thể tạo ra lời nói dối giữa & nbsp; ________ 14 & nbsp; và giá trị được trả về bởi & nbsp; ____ 23. Nó dựa vào việc triển khai & nbsp; mersenne twister & nbsp; để tạo ra các số ngẫu nhiên. Coi chừng, mặc dù có thể sử dụng Php 7.1.0, chức năng này đã triển khai một phiên bản không chính xác của thuật toán để tạo các số. Tuy nhiên, nó đã được sửa trong các phiên bản mới hơn.

Chức năng thậm chí còn trở nên tốt hơn trong Php 7.2.0 bằng cách loại bỏ lỗi thiên vị modulo. Điều này có nghĩa là đối với một số hạt cụ thể, chuỗi số ngẫu nhiên của bạn bây giờ sẽ tốt hơn một chút so với các phiên bản cũ hơn. Một số mã chuyên dụng thực sự có thể dựa vào sự thiên vị này, mặc dù. Nếu vậy, bạn có thể sử dụng thuật toán hạt giống cũ hơn bằng cách gọi & nbsp; ________ 24 & nbsp; hàm để gieo vào trình tạo số ngẫu nhiên và chuyển & nbsp; ________ 25 & nbsp; làm giá trị của tham số thứ hai.

Hàm & nbsp; ____ 16 & nbsp; có thời gian 219937−1, về cơ bản có nghĩa là trong trường hợp tốt nhất, bạn nhận được số lượng ngẫu nhiên 219937−1 trước khi chuỗi bắt đầu lặp lại. Bạn nên lưu ý rằng sự lặp lại của một chuỗi không giống như sự lặp lại của một số cụ thể. Nói cách khác, bạn có thể nhận được cùng một số ngẫu nhiên hai lần, nhưng điều đó không có nghĩa là bản thân trình tự đã bắt đầu lặp lại. Trình tự sau là một ví dụ:

187 3276 1267 15 1267 34598 3467 125 17

Trong chuỗi trên, chúng tôi đã có 1267 hai lần trong đầu ra, nhưng điều đó không có nghĩa là toàn bộ chuỗi bắt đầu lặp lại sau đó. Không có khả năng lặp lại cùng một số được lặp lại sớm trong một chuỗi ngẫu nhiên, nhưng điều đó là có thể!

Các số nguyên ngẫu nhiên bảo mật bằng mã hóa

Nếu bạn muốn các số giả ngẫu nhiên bảo mật bằng mã hóa, thì & nbsp; ________ 27 & nbsp; chức năng trong PHP là đặt cược tốt nhất của bạn. Nó sẽ tạo ra các số ngẫu nhiên giữa các giá trị được cung cấp & nbsp; ____ 20 & nbsp; và & nbsp; Thật không may, chức năng này chỉ có sẵn bắt đầu từ Php 7.0. Đối với các phiên bản trước đó, bạn có thể sử dụng & nbsp; polyfill này trên github.

Phao ngẫu nhiên

Thay vì tạo số nguyên ngẫu nhiên, bạn cũng có thể muốn tạo phao. Điều này có thể được thực hiện một cách dễ dàng bằng cách chia một số ngẫu nhiên với giá trị được trả về bởi & nbsp; ________ 23. Ví dụ sau đây sẽ minh họa cách tạo ra một chiếc phao ngẫu nhiên giữa 0 đến 1 hoặc giữa bất kỳ giới hạn tối thiểu và tối đa nào khác.

Khi tạo ra một chiếc phao ngẫu nhiên giữa các giới hạn đã cho, chúng tôi đảm bảo rằng các số nguyên ngẫu nhiên không đi trên & nbsp; ________ 33. Bằng cách này, chúng tôi có thể chắc chắn rằng việc thêm phần nổi sẽ không lấy số trên giới hạn tối đa.

Gieo hạt cho các máy phát số ngẫu nhiên

Một khái niệm cần một chút giải thích là hạt giống. Nói một cách đơn giản, đây chỉ là những con số có thể được sử dụng để khởi tạo & nbsp; Chức năng mà hạt giống & nbsp; ________ 13 & nbsp; được gọi là & nbsp; ____ 37, và chức năng mà hạt giống & nbsp; ________ 16 & nbsp; được gọi là & nbsp; ________ 39.

Điều quan trọng cần nhớ là cung cấp giá trị hạt giống ban đầu mỗi lần trước khi gọi & nbsp; Trong thực tế, sử dụng cùng một hạt giống mỗi lần cũng sẽ cung cấp cho bạn cùng một số ngẫu nhiên!

Cây gieo một số ngẫu nhiên là hữu ích trong các tình huống mà bạn muốn tạo ra một chuỗi ngẫu nhiên nhưng có thể tái tạo. Đoạn mã sau đây tạo ra cùng một chuỗi các số ngẫu nhiên khi chạy hai lần.

Tạo các chuỗi ngẫu nhiên có thể tái tạo theo cách này có thể giúp gỡ lỗi các chương trình đang được thử nghiệm bằng cách sử dụng dữ liệu ngẫu nhiên nếu bạn theo dõi hạt giống, bạn có thể sao chép cùng một đầu vào để tìm ra những gì đã sai.

Tạo chuỗi chữ và số ngẫu nhiên trong PHP

Có nhiều cách để tạo ra các chuỗi chữ và số ngẫu nhiên và những gì bạn sử dụng sẽ phụ thuộc vào nhu cầu của bạn.

Tạo ID duy nhất

Nếu bạn chỉ đơn giản muốn tạo một chuỗi duy nhất và nó không cần phải an toàn về mặt mật mã, thì hãy xem xét sử dụng chức năng & nbsp; ____ 42 & nbsp;. Nó trả về một định danh duy nhất dựa trên dấu thời gian hiện tại.

Hàm cũng chấp nhận hai tham số để thêm tiền tố hoặc tăng entropy của chuỗi được tạo. Dưới đây là một số ví dụ của nó:

Tạo dây xáo trộn

Nếu bạn muốn tạo các chuỗi chữ và số ngẫu nhiên từ một bộ ký tự cố định, bạn có thể sử dụng chức năng & nbsp; ____ 43 & nbsp;. Hàm này sẽ cung cấp cho bạn một chuỗi bị xáo trộn ngẫu nhiên. Bắt đầu từ Php 7.1, thuật toán xác định thứ tự ngẫu nhiên của các ký tự trong chuỗi đầu ra đã được thay đổi thành Mersenne Twister.

Hãy nhớ rằng chuỗi ngẫu nhiên được tạo ra theo cách này không an toàn về mặt mật mã. Tuy nhiên, chuỗi vẫn sẽ không thể đoán trước được đối với sử dụng phổ biến như tạo tên tệp hoặc URL ngẫu nhiên. Đây là vài ví dụ:

Đầu ra của bạn rất có thể sẽ khác nhau trong cả hai trường hợp. Trong trường hợp đầu tiên, chúng tôi chỉ xáo trộn chuỗi ký tự được phép và sau đó lấy 10 ký tự đầu tiên của nó. Trong trường hợp thứ hai, chúng tôi đã thêm "video" ở đầu chuỗi được tạo và ".mp4" ở cuối.

Phương pháp tạo chuỗi chữ và số ngẫu nhiên này rất dễ dàng, nhưng nó có một vài vấn đề. Ví dụ: bạn sẽ không bao giờ nhận được cùng một ký tự trong chuỗi ngẫu nhiên của bạn hai lần. Ngoài ra, độ dài của chuỗi đầu ra ngẫu nhiên chỉ có thể dài bằng chuỗi đầu vào.

Tạo chuỗi ngẫu nhiên

Nếu các vấn đề tôi liệt kê ở trên là một công cụ phá vỡ thỏa thuận, bạn có thể muốn xem xét một số triển khai khác. Mã sau đây sẽ giải quyết cả hai vấn đề này.

Bạn có thể sửa đổi nó để thêm các hậu tố cụ thể và tiền tố vào chuỗi ngẫu nhiên được tạo. Những người đang sử dụng Php 7 có thể cải thiện việc tạo chuỗi hơn nữa bằng cách sử dụng hàm bảo mật bằng mã hóa & nbsp; ____ 27 & nbsp; thay vì & nbsp; ________ 16.

Tạo chuỗi thập lục phân ngẫu nhiên

Nếu bạn muốn tạo các chuỗi thập lục phân ngẫu nhiên trong PHP, bạn cũng có thể sử dụng & nbsp; ________ 46 & nbsp; hoặc & nbsp; Cả hai sẽ tạo ra băm của một chuỗi đầu vào đã cho.

Bạn sẽ tiếp tục nhận được băm độc đáo miễn là đầu vào là duy nhất. Điều này có thể đạt được bằng cách sử dụng đầu ra của một hàm như & nbsp; ________ 48 & nbsp; làm đầu vào. Theo mặc định, & nbsp; ____ ____ 49 & nbsp; sẽ trả lại chuỗi thập lục phân 32 ký tự và & nbsp; ____ ____ 50 & nbsp; sẽ trả về một chuỗi thập lục phân 40 ký tự. Chúng có thể được cắt theo một độ dài cụ thể bằng cách sử dụng chức năng & nbsp; ____ 51 & nbsp;

Dưới đây là một ví dụ về đầu ra được trả về bởi các chức năng này:

Như bạn có thể thấy, việc tạo ra các chuỗi thập lục phân ngẫu nhiên và độc đáo dài tới 40 ký tự rất dễ dàng trong PHP.

Tạo chuỗi ngẫu nhiên bảo mật bằng mã hóa

Ba chức năng để tạo ra các chuỗi chữ và số ngẫu nhiên mà chúng ta đã thảo luận cho đến nay không được bảo mật bằng mật mã. May mắn thay, PHP cũng có một chức năng gọi là & nbsp; ________ 52 & nbsp; để tạo các byte giả ngẫu nhiên bảo mật bằng mã hóa. Tham số & nbsp; ________ 53 & nbsp; xác định thời gian chuỗi đầu ra nên dài bao nhiêu.

Khi bạn có đầu ra về các byte ngẫu nhiên, bạn có thể sử dụng chức năng & nbsp; ____ 54 & nbsp; để chuyển đổi chúng thành các giá trị thập lục phân. Điều này sẽ tăng gấp đôi chiều dài của chuỗi.

Một chức năng khác mà bạn có thể sử dụng để tạo các byte ngẫu nhiên bảo mật bằng mã hóa là & nbsp; ________ 55. Giá trị của tham số thứ hai có thể được sử dụng để xác định xem chuỗi đầu ra sẽ được tạo bằng thuật toán bảo mật bằng mã hóa hay không.

Trong các ví dụ trên, sử dụng chức năng & nbsp; ____ 54 & nbsp; cho chúng ta giá trị cuối cùng dưới dạng chuỗi thập lục phân. Nếu vì một lý do nào đó, bạn muốn một chuỗi chữ và số ngẫu nhiên an toàn bằng mã hóa sử dụng tất cả các ký tự từ A & NBSP; đến & NBSP; Z, bạn nên xem xét sử dụng chức năng sau.

Hàm & nbsp; ________ 57 & nbsp; Chúng tôi đã viết ở trên chấp nhận một tham số duy nhất xác định độ dài của chuỗi chúng tôi muốn nó quay lại. Chúng tôi chạy vòng lặp A & nbsp; ____ 58 & nbsp; tạo ra một số nguyên ngẫu nhiên trong phạm vi 0 đến 36. Sau đó, chúng tôi chuyển đổi số của chúng tôi từ cơ sở 10 sang cơ sở 36 bằng & nbsp; ________ 59 & nbsp; hàm. Ký tự kết quả có thể là bất cứ thứ gì từ các chữ số 0 đến 9 và các ký tự A & nbsp; to & nbsp; z. Chúng tôi nối nó ở cuối chuỗi ngẫu nhiên của chúng tôi. Cuối cùng, chúng tôi trả lại chuỗi đầy đủ của chúng tôi.

Suy nghĩ cuối cùng

Trong hướng dẫn này, chúng tôi đã xem xét việc tạo ra các số ngẫu nhiên và chuỗi chữ và số trong PHP. Tạo các số ngẫu nhiên có thể hữu ích trong nhiều tình huống khác nhau, như trong các trò chơi mà bạn phải sinh ra người chơi kẻ thù hoặc ngẫu nhiên cung cấp cho người dùng một số manh mối về các chữ cái để chúng có thể tạo thành cả một từ.

Cũng giống như các số ngẫu nhiên, việc tạo ra các chuỗi chữ và số ngẫu nhiên cũng có thể khá hữu ích trong nhiều trường hợp. Với sự trợ giúp của & nbsp; ________ 60, bạn có thể chọn bộ ký tự nào xuất hiện trong các chuỗi ngẫu nhiên của bạn. Với & nbsp; ____ ____ 50 & nbsp; và & nbsp; ________ 49, bạn có thể dễ dàng tạo các chuỗi thập lục phân ngẫu nhiên và với & nbsp; ____ ____ 63 & nbsp; bạn có thể tạo các chuỗi bảo mật bằng mật mã. Điều này sẽ cho phép bạn tạo ra tên tệp và tên người dùng có ý nghĩa nhưng ngẫu nhiên khó đoán.

Tôi hy vọng bạn thích hướng dẫn này. Nếu bạn có bất kỳ câu hỏi, hãy hỏi họ trong các ý kiến.

Bạn có thấy bài đăng này hữu ích?

Hướng dẫn how to create random alphanumeric in php? - làm thế nào để tạo chữ và số ngẫu nhiên trong php?

Freelancer, người hướng dẫn

Tôi là một nhà phát triển đầy đủ, người cũng thích viết các hướng dẫn. Sau khi thử một loạt những điều cho đến năm thứ hai của đại học, tôi quyết định làm việc về các kỹ năng phát triển web của mình. Bắt đầu chỉ với HTML và CSS, tôi tiếp tục tiến về phía trước và có được kinh nghiệm trong PHP, JavaScript và Python. Tôi thường dành thời gian rảnh của mình hoặc làm việc cho một số dự án phụ hoặc đi du lịch xung quanh.

Chữ số có trong PHP không?

Hàm ctype_alnum () trong PHP được sử dụng để kiểm tra tất cả các ký tự của chuỗi/văn bản đã cho là chữ và số. Nếu tất cả các ký tự là chữ và số thì trả về true, nếu không hãy trả về sai. Tham số được sử dụng: $ Text: Đây là một tham số bắt buộc chỉ định chuỗi.. If all characters are alphanumeric then return TRUE, otherwise return FALSE. Parameters Used: $text : It is a mandatory parameter which specifies the string.

Làm thế nào chúng ta có thể tạo một mật khẩu ngẫu nhiên duy nhất trong PHP *?

Hàm Php Password_Generate ($ chars) {$ data = '1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZABCEFGHIJKLMNOPQRSTUVWXYZ';trả về chuỗi con (str_shuffle ($ data), 0, $ chars);} echo password_Generate (7).

Làm thế nào để bạn tạo ra các chuỗi chữ và số độc đáo ngẫu nhiên trong Laravel?

Nếu bạn cần tạo chuỗi ngẫu nhiên duy nhất thì bạn có thể sử dụng trình trợ giúp của str_random () của Laravel.Nó rất đơn giản và bạn có thể sử dụng dễ dàng.Bạn có thể dễ dàng tạo chuỗi ngẫu nhiên trong phiên bản Laravel 6, Laravel 7, Laravel 8 và Laravel 9 bằng cách sử dụng Str Helper.use str_random() helper of Laravel. It is very simple and you can use easily. you can easily generate random string in laravel 6, laravel 7, laravel 8 and laravel 9 version using str helper.

Hàm MT_RAND trong PHP là gì?

Định nghĩa và cách sử dụng.Hàm mt_rand () tạo ra một số nguyên ngẫu nhiên bằng thuật toán twister mersenne.Mẹo ví dụ: Nếu bạn muốn một số nguyên ngẫu nhiên trong khoảng từ 10 đến 100 (bao gồm), hãy sử dụng MT_RAND (10.100).generates a random integer using the Mersenne Twister algorithm. Example tip: If you want a random integer between 10 and 100 (inclusive), use mt_rand (10,100).