Сгенерировать пароль в PHP
-
Используйте функцию
rand()
для выбора индекса случайного массива для генерации случайного пароля в PHP -
Используйте функции
openssl_random_pseudo_bytes()
иbin2hex()
для генерации случайного пароля в PHP -
Используйте функции
substr()
иstr_shuffle()
для генерации случайного пароля из заданной буквенно-цифровой строки в PHP

Мы представим метод генерации случайных паролей в PHP с помощью функции rand()
. В этом методе для формирования пароля используется комбинация строчных и прописных букв и цифр. Функция rand()
возвращает случайное целое число, которое является индексом массива, для выбора комбинации паролей.
Мы также представим другой метод генерации случайных паролей в PHP с использованием функций openssl_random_pseudo_bytes()
и bin2hex()
.
В этой статье будет продемонстрирован еще один метод генерации случайных паролей в PHP с использованием функций substr()
и str_shuffle()
. Этот метод также использует буквенно-цифровые значения, предоставленные в программе, для формирования случайного пароля.
Используйте функцию rand()
для выбора индекса случайного массива для генерации случайного пароля в PHP
Мы можем использовать функцию rand()
для генерации случайного пароля в PHP. Функция rand()
возвращает случайное целое число из диапазона предоставленных параметров. Функция принимает в качестве параметров два целых значения. Мы можем определить строку алфавитов и цифр, из которой мы можем комбинировать пароль. Случайное число индексирует массив для выбора случайных алфавитов или чисел. Мы можем зациклить функцию rand()
, чтобы создать пароль желаемой длины.
Например, создайте переменную $comb
и сохраните строку, содержащую все буквы нижнего и верхнего регистра и числа от 0 до 10, как abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890
. Создайте массив $pass
с помощью функции array()
. Сохраните длину строки $comb
в переменной $combLen
. Создайте цикл for
и повторите его восемь раз. Внутри цикла используйте функцию rand()
с 0
и переменную $combLen
в качестве параметров и сохраните значение в переменной $n
. Затем присвойте $comb[$n]
массиву $pass
. Вне цикла преобразовать массив в строку с помощью функции implode()
.
В приведенном ниже примере мы генерируем случайный пароль из комбинации, хранящейся в переменной $comb
. Функция rand()
выбирает случайное целое число от 0 до длины строки $comb
. Случайное целое число используется в качестве индекса для выбора случайного буквенно-цифрового значения из комбинации. Цикл запускается восемь раз, выбирает восемь случайных буквенно-цифровых значений и, наконец, формирует случайный пароль. Прочтите Руководство по PHP, чтобы узнать больше о функции rand()
.
Пример кода:
# php 7.x
<?php
$comb = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890';
$pass = array();
$combLen = strlen($comb) - 1;
for ($i = 0; $i < 8; $i++) {
$n = rand(0, $combLen);
$pass[] = $comb[$n];
}
print(implode($pass));
?>
Выход:
aPsQWlzh
Используйте функции openssl_random_pseudo_bytes()
и bin2hex()
для генерации случайного пароля в PHP
Мы можем использовать функцию openssl_random_pseudo_bytes()
для генерации псевдослучайной строки байтов. Мы можем указать целочисленное значение в качестве параметра функции, чтобы определить длину желаемого количества байтов, которое будет сгенерировано. Функция bin2hex()
преобразует двоичные данные в шестнадцатеричное представление. Мы можем использовать эту функцию для преобразования случайно сгенерированной строки байтов в шестнадцатеричное представление и формирования пароля. Этот метод генерирует случайный пароль, состоящий из буквенно-цифровых значений.
Например, создайте переменную $bytes
и назначьте ей функцию openssl_random_pseudo_bytes()
. В качестве параметра функции укажите 4
. Создайте еще одну переменную $pass
и напишите ей функцию bin2hex()
. Укажите в функции переменную $bytes
. Выведите переменную $pass
с помощью оператора echo
.
В приведенном ниже примере 4
в функции openssl_random_pseudo_bytes()
обозначает количество байтов, которые будут генерироваться случайным образом. Функция bin2hex()
конвертирует байты в шестнадцатеричный эквивалент. Случайно сгенерированный пароль содержит длину 8, потому что шестнадцатеричное преобразование 4 байтов строки приводит к 8. Просмотрите Руководство по PHP, чтобы узнать больше о функции bin2hex()
.
Пример кода:
#php 7.x
<?php
$bytes = openssl_random_pseudo_bytes(4);
$pass = bin2hex($bytes);
echo $pass;
?>
Выход:
ed203eef
Используйте функции substr()
и str_shuffle()
для генерации случайного пароля из заданной буквенно-цифровой строки в PHP
Мы можем использовать метод str_shuffle()
для случайного перемешивания данной строки. Функция перемешивает строку комбинации букв нижнего и верхнего регистра вместе с числами от 0 до 9. Таким образом, она формирует одну перестановку всех возможных вариантов. Мы можем использовать функцию substr()
для перетасованной строки, чтобы выбрать часть ее символов. Таким образом, мы можем сгенерировать случайный пароль.
Например, создайте переменную $comb
и сохраните в ней строковое значение abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789
. Используйте str_shuffle()
, чтобы перемешать переменную $comb
и сохранить ее в переменной $shfl
. Затем используйте функцию substr()
и переменную $shfl
, 0
и 8
в качестве параметров. Сохраните функцию в переменной $pwd
и распечатайте переменную.
В приведенном ниже примере мы используем тот же набор буквенно-цифровых значений, что и первый метод. Случайно сгенерированный пароль формируется из этих буквенно-цифровых значений. Функция str_shuffle()
перемешивает буквенно-цифровое значение и создает случайную перестановку. Мы использовали 0
и 8
в функции substr()
, чтобы выбрать восемь символов из первого индекса перетасованной перестановки. Таким образом, он генерирует случайный пароль из восьми цифр.
Пример кода:
#php 7.x
<?php
$comb = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
$shfl = str_shuffle($comb);
$pwd = substr($shfl,0,8);
echo $pwd;
?>
Выход:
jenZq3lY
Subodh is a proactive software engineer, specialized in fintech industry and a writer who loves to express his software development learnings and set of skills through blogs and articles.
LinkedIn