Я предпочитаю использовать lib fromm Google Collections служебных методов от объектов класса , который помогает мне содержать свой код в чистоте. Очень часто equals
и hashcode
методы сделаны из шаблона IDE, таким образом, их не являются чистыми для чтения.
Just build a string of random a-z
, A-Z
, 0-9
(or whatever you want) up to the desired length. Here's an example in PHP:
function generatePassword($length = 8) {
$chars = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789';
$count = mb_strlen($chars);
for ($i = 0, $result = ''; $i < $length; $i++) {
$index = rand(0, $count - 1);
$result .= mb_substr($chars, $index, 1);
}
return $result;
}
To optimize, you can define $chars
as a static variable or constant in the method (or parent class) if you'll be calling this function many times during a single execution.
Я хочу поиграть в игру. Самый простой способ - это сделать:
function rand_passwd( $length = 8, $chars = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789' ) {
return substr( str_shuffle( $chars ), 0, $length );
}
Это в значительной степени просто модификация первого ответа. Укажите желаемые символы во втором параметре и длину пароля в первом.
Вот простое решение. Он будет содержать строчные буквы и цифры.
substr(str_shuffle(strtolower(sha1(rand() . time() . "my salt string"))),0, $PASSWORD_LENGTH);
Вот более сильное решение, которое случайным образом генерирует коды символов в желаемом диапазоне символов для случайной длины в желаемом диапазоне.
function generateRandomPassword() {
//Initialize the random password
$password = '';
//Initialize a random desired length
$desired_length = rand(8, 12);
for($length = 0; $length < $desired_length; $length++) {
//Append a random ASCII character (including symbols)
$password .= chr(rand(32, 126));
}
return $password;
}
Вы можете просто использовать пакет Text_Password PEAR - он поддерживает довольно много алгоритмов их генерации; и освобождает время, чтобы заняться чем-нибудь другим.