Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 13.02.2012, 14:46
Новичок на форуме
Отправить личное сообщение для boJlb Посмотреть профиль Найти все сообщения от boJlb
 
Регистрация: 21.10.2011
Сообщений: 7

как исправить ф-ию? генератор паролей.
Есть функция генератора паролей следующего вида:
<HEAD >
 
<SCRIPT LANGUAGE="JavaScript">
 
function a1(q) {
  var i=document.myform.passlength.value;
  document.myform.password.value="";
  if (i==8)  document.myform.password.size=8; 
  if (i==10) document.myform.password.size=10;
  if (i==12) document.myform.password.size=12;
}
function getRandomNum(lbound, ubound) {
                return (Math.floor(Math.random() * (ubound - lbound)) + lbound);
}
 
function getRandomChar() {
var upperChars = "0123456789abcdefghjkmnopqrstuvwxyzABCDEFGHJKLMNOPQRSTUVWXYZ";
var charSet = "";
charSet += upperChars;
return charSet.charAt(getRandomNum(0, charSet.length));
}
 
function getPassword(length) {
var rc = "";
if (length > 0)
for (var idx = 0; idx < length; ++idx) {
                rc = rc + getRandomChar();
                }
return rc;
}
</script>
 
</HEAD>


проблема заключается в том, что он периодически выдает комбинацию без цифр. Подскажите плз, как переделать так, чтобы цифра там была всегда? т.е., например, 4-ый, 5-ый символы пароля - обязательно цифры? Заранее спс за help
Ответить с цитированием
  #2 (permalink)  
Старый 13.02.2012, 15:25
Аватар для Skipp
.
Отправить личное сообщение для Skipp Посмотреть профиль Найти все сообщения от Skipp
 
Регистрация: 30.03.2010
Сообщений: 1,813

Решил по другому сделать, долго не думал и вышло это:
<script type="text/javascript">
	function gen(n){
		var arg = new Array();
		for(var i=0; i<n;i++) arg.push(rand(48,58), rand(65,91), rand(97,123))
		for(var j, x, y = arg.length; y; j = parseInt(Math.random() * y), x = arg[--y], arg[y] = arg[j], arg[j] = x);
		return String.fromCharCode.apply(this, arg);
	}
	function rand(min, max){
		return Math.floor(Math.random() * (max - min) + min);
	}
</script>
<input id="pass" type="text" />
<input type="button" value="Генерировать" onclick="document.getElementById('pass').value = gen(4)" />


Всегда состоит из четырёх цифр, а так же четырёх маленьких и четырёх больших символов.
__________________
.

Последний раз редактировалось Skipp, 13.02.2012 в 16:46.
Ответить с цитированием
  #3 (permalink)  
Старый 13.02.2012, 15:52
Новичок на форуме
Отправить личное сообщение для boJlb Посмотреть профиль Найти все сообщения от boJlb
 
Регистрация: 21.10.2011
Сообщений: 7

Сообщение от Skipp Посмотреть сообщение
Всегда состоит из четырёх цифр, а так же четырёх маленьких и четырёх больших символов.
Генератор используется для получения паролей заданной длины, а именно 8, 10 и 12 символов. вашь подходит только для последнего варианта)
а как же мне быть с 8-и символьным паролем?
Можно не менять фунцию полностью, а задать, например, параметр, который будет отвечать за генерацию именно 4-ого символа паса?
Ответить с цитированием
  #4 (permalink)  
Старый 13.02.2012, 16:03
Аватар для Skipp
.
Отправить личное сообщение для Skipp Посмотреть профиль Найти все сообщения от Skipp
 
Регистрация: 30.03.2010
Сообщений: 1,813

Последовательность моего скрипта n*3, вам такой не подойдёт?
__________________
.
Ответить с цитированием
  #5 (permalink)  
Старый 13.02.2012, 16:29
Аватар для Skipp
.
Отправить личное сообщение для Skipp Посмотреть профиль Найти все сообщения от Skipp
 
Регистрация: 30.03.2010
Сообщений: 1,813

<script type="text/javascript">
	function gen(n){
		var arg = new Array();
		for(var i=0; i<n;i++) arg.push(rand(48,58), rand(65,91), rand(97,123))
		for(var j, x, y = arg.length; y; j = parseInt(Math.random() * y), x = arg[--y], arg[y] = arg[j], arg[j] = x);
		return String.fromCharCode.apply(this, arg);
	}
	function rand(min, max){
		return Math.floor(Math.random() * (max - min) + min);
	}
</script>
<input id="pass" type="text" />
<input type="button" value="Генерировать 12" onclick="document.getElementById('pass').value = gen(4)" />
<input type="button" value="Генерировать 10" onclick="document.getElementById('pass').value = gen(4).substr(1, 10)" />
<input type="button" value="Генерировать 8" onclick="document.getElementById('pass').value = gen(3).substr(1, 8)" />
__________________
.
Ответить с цитированием
  #6 (permalink)  
Старый 13.02.2012, 16:55
Аватар для Skipp
.
Отправить личное сообщение для Skipp Посмотреть профиль Найти все сообщения от Skipp
 
Регистрация: 30.03.2010
Сообщений: 1,813

Сделал чуток по проще, в функцию просто передаётся необходимая длина.
<script type="text/javascript">
function gen(l){
		var arg = new Array(), l = l || 4;
		for(var i = 0; i < Math.round((l / 3) + 0.49); i++) arg.push(rand(48,58), rand(65,91), rand(97,123))
		for(var j, x, i = arg.length; i; j = parseInt(Math.random() * i), x = arg[--i], arg[i] = arg[j], arg[j] = x);
		return String.fromCharCode.apply(this, arg).substr(0, l);
	}
	function rand(min, max){
		return Math.floor(Math.random() * (max - min) + min);
	}
</script>
<input id="pass" type="text" />
<input type="button" value="Генерировать 12" onclick="document.getElementById('pass').value = gen(12)" />
__________________
.

Последний раз редактировалось Skipp, 13.02.2012 в 17:20.
Ответить с цитированием
  #7 (permalink)  
Старый 13.02.2012, 17:20
Новичок на форуме
Отправить личное сообщение для boJlb Посмотреть профиль Найти все сообщения от boJlb
 
Регистрация: 21.10.2011
Сообщений: 7

Skipp, глянь как это все выглядит в конечном варианте, архив я приложил..
В JS я есмь дерево еще то) все сделал по аналогии с готовых скриптов, поэтому если ты внедришь свое творение в мой чудо-генератор - счастью и благодарности моим не будет предела!
Вложения:
Тип файла: zip PASSGEN.zip (145.7 Кб, 8 просмотров)
Ответить с цитированием
  #8 (permalink)  
Старый 13.02.2012, 17:26
Аватар для Skipp
.
Отправить личное сообщение для Skipp Посмотреть профиль Найти все сообщения от Skipp
 
Регистрация: 30.03.2010
Сообщений: 1,813

Прости, но это уж делай сам.
__________________
.
Ответить с цитированием
  #9 (permalink)  
Старый 13.02.2012, 17:28
Новичок на форуме
Отправить личное сообщение для boJlb Посмотреть профиль Найти все сообщения от boJlb
 
Регистрация: 21.10.2011
Сообщений: 7

Skipp,
ок, спс за help
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как отловить обратное событие "click" ? jsuse Общие вопросы Javascript 2 18.01.2012 00:16
как реализовать передачу функции в функцию?? czp Общие вопросы Javascript 10 29.11.2011 19:21
JS классы - как объединить функции в класс olga153b Events/DOM/Window 3 01.11.2011 14:13
Как сделать электронный каталог продукции? natarius Серверные языки и технологии 6 24.05.2009 20:56
как можно создать iframe со скриптами GOll Общие вопросы Javascript 2 05.05.2009 11:32