random — php безопасный генератор паролей

Я играл с генератором паролей, но мой php …. в лучшем случае посредственный. Есть много примеров функций генератора паролей, поэтому я начал там. Я наткнулся на интерфейс между генератором и пользовательским вводом, но мог бы воспользоваться некоторыми советами по его очистке.

Я хотел бы получить значение по умолчанию для длины пароля, но если я установлю одно, скажем, 14, используя значение = 14, я не могу изменить его вручную.
Кроме того, моя рамка с паролем, которая отображает пароль, очень мала, пока не будет сгенерирован пароль. Как я могу сделать его установленным размером?

использует post из формы в функцию, а затем возвращает его с сеансом?

просто пытаюсь учиться!

index.php

<?php
session_start();
?>
<!doctype html>
<head>
<title>Password Generator</title>
</head><h1>Password Generator</h1>
<p>Just a basic password generator.</p>
<form method="post" action="./pass.php">
<table>
<tr>
<td colspan="2"><h3>Select Characters</h3></td>
</tr>
<tr>
<td colspan="2"><input checked="checked" type="checkbox" name="alpha" /> Lowercase A-Z</td>
</tr>
<tr>
<td colspan="2"><input checked="checked" type="checkbox" name="alpha_upper" /> Uppercase A-Z</td>
</tr>
<tr>
<td colspan="2"><input checked="checked" type="checkbox" name="numeric" /> Numbers (0-9)</td>
</tr>
<tr>
<td colspan="2"><input checked="checked" type="checkbox" name="special" /> Special Characters (.-+=_,!@$#*%<>[]{})</td>
</tr>
<tr>
<td colspan="2"><h3 style="margin: 20px 0;">Password Length</h3></td>
</tr>
<tr>
<td colspan="2"><input type="text" name="length" size="2" maxlength="2" /></td>
</tr>
<tr>
<td colspan="2"><input type="submit" value="Generate" /></td>
</tr>
<tr>
<td colspan="2">
<div style="padding: 20px 0;">
<div>Your Password:</div>

<div style='border:1px black solid; font-size: 14px; font-family: monospace; padding:3px; color:#000; background-color: #D2E0E6; margin: 0;'>
<?php
echo $_SESSION['password'];
?>
</div>

</div>
<?php
session_destroy();
?>
</td>
</tr>
</table>
</form>

</body>
</html>

pass.php

<?php
$alpha = "abcdefghijklmnopqrstuvwxyz";
$alpha_upper = strtoupper($alpha);
$numeric = "0123456789";
$special = ".-+=_,!@$#*%<>[]{}";
$chars = "";

if (isset($_POST['length'])){
if (isset($_POST['alpha']) && $_POST['alpha'] == 'on')
$chars .= $alpha;

if (isset($_POST['alpha_upper']) && $_POST['alpha_upper'] == 'on')
$chars .= $alpha_upper;

if (isset($_POST['numeric']) && $_POST['numeric'] == 'on')
$chars .= $numeric;

if (isset($_POST['special']) && $_POST['special'] == 'on')
$chars .= $special;

$length = $_POST['length'];
}else{
$chars = $alpha . $alpha_upper . $numeric;
$length = 9;
}

$len = strlen($chars);
$pw = '';

for ($i=0;$i<$length;$i++)
$pw .= substr($chars, rand(0, $len-1), 1);

$pw = str_shuffle($pw);

session_start();
$_SESSION['password'] = $pw;

header("Location: index.php");
die();

?>

1

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]