Щелкните правой кнопкой мыши конфликтный файл и выберите «использовать мой». FYI, другая альтернатива - «использовать их». Конечно, для этого требуется пользовательский интерфейс.
Есть много ответов на этот вопрос, но ни один из них не использует Криптографически безопасный генератор псевдослучайных чисел (CSPRNG).
Простой, безопасный и правильный ответ - использовать RandomLib и не изобретать велосипед.
Для тех из вас, кто настаивает на изобретении собственного решения, PHP 7.0.0 предоставит random_int()
для этой цели; если вы все еще используете PHP 5.x, мы написали PHP 5 polyfill для random_int()
, чтобы вы могли использовать новый API даже до обновления до PHP 7.
Безопасное создание случайных целых чисел в PHP не является тривиальной задачей. Вы должны всегда проверять ваших постоянных экспертов по криптографии StackExchange , прежде чем внедрять собственный алгоритм в производство.
С безопасным целочисленным генератором на месте генерация случайной строки с CSPRNG - прогулка в парке.
/**
* Generate a random string, using a cryptographically secure
* pseudorandom number generator (random_int)
*
* For PHP 7, random_int is a PHP core function
* For PHP 5.x, depends on https://github.com/paragonie/random_compat
*
* @param int $length How many characters do we want?
* @param string $keyspace A string of all possible characters
* to select from
* @return string
*/
function random_str($length, $keyspace = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ')
{
$pieces = [];
$max = mb_strlen($keyspace, '8bit') - 1;
for ($i = 0; $i < $length; ++$i) {
$pieces []= $keyspace[random_int(0, $max)];
}
return implode('', $pieces);
}
Использование :
$a = random_str(32);
$b = random_str(8, 'abcdefghijklmnopqrstuvwxyz');
Демонстрация : https: // 3v4l.org/b4PST (Игнорировать сбои PHP 5; требуется случайный компас)
С тех пор php7, существуют функции random_bytes. https://www.php.net/manual/ru/function.random-bytes.php, Таким образом, можно генерировать случайную строку как этот
<?php
$bytes = random_bytes(5);
var_dump(bin2hex($bytes));
?>
Вот является мое простое одним решением для строки генерировать использование дружественный случайный пароль, исключая символы, что двойник такой как "1" и "l", "O" и "0", и т.д.... здесь это - 5 символов, но можно легко изменить его, конечно:
$user_password = substr(str_shuffle('abcdefghjkmnpqrstuvwxyzABCDEFGHJKMNPQRSTUVWXYZ23456789'),0,5);