Фев
20
2013
20
2013
JavaScript // PHP /
Пишем генератор паролей на php+javascript
Хочу представить вашему вниманию, пример написания Генератора паролей на javascript. Используются две функции это PasGen, и Check первая в свою очередь генерирует пароль а вторая обрабатывает нажатие checkbox и меняет символы в поле input. Генерация пароля происходит обектом Math.random. Пользуйтесь.
Html код
<script src="pas.js"></script> <form name="f" action="" method="post"> <p>Символы: <input style="WIDTH: 470px" value="1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz" name="chars"><br> Длина пароля: <input size="1" value="10" name="length" maxlength="2">(Максимум: 99)<br> Количество паролей: <input size="1" value="10" name="count" maxlength="2"> (Максимум: 99)<br> <input onclick="Check();" type="checkbox" checked="" name="Csmall">Маленькие буквы <br> <input onclick="Check();" type="checkbox" checked="" name="Cbig">Заглавные буквы <br> <input onclick="Check();" type="checkbox" checked="" name="Cnum">Цифры <br> <input onclick="Check();" type="checkbox" name="Csigns">Знаки <br> <input onclick="document.all.YOURS.innerHTML=''; c = f.count.value;for (i=1;i<=c;i++) document.all.YOURS.innerHTML+=i+'. <samp>'+PasGen(f.chars.value,f.length.value)+'</samp><br>';" type="button" class="button default" value="Генерировать"> </p> </form> <h3>Cгенерированные пароли</h3> <div class="code"><p id="YOURS"></p></div>
Javascript код
Собственно сами функции
function PasGen(chars,length) { var res=""; var r; var i; for (i=1;i<=length;i++) { r=Math.floor(Math.random()*chars.length); res=res+chars.substring(r,r+1); } res = res.replace("&","&"); res = res.replace(">",">"); res = res.replace("<","<"); return res } function Check() { f.chars.value=''; if (f.Csigns.checked) f.chars.value=f.chars.value+'!"№;%:?*()_+=-~/\\<>,.[]{}'; if (f.Cnum.checked) f.chars.value=f.chars.value+'1234567890'; if (f.Cbig.checked) f.chars.value=f.chars.value+'ZYXWVUTSRQPONMLKJIHGFEDCBA'; if (f.Csmall.checked) f.chars.value=f.chars.value+'zyxwvutsrqponmlkjihgfedcba'; }