Мой Kbyte.Ru
Рассылка Kbyte.Ru
Группы на Kbyte.Ru
Партнеры Kbyte.Ru
Реклама
Сделано руками
Сделано руками
> Исходные коды - Narayana Vyas Kondreddi -

Microsoft SQL Server - Строки

Все примеры / Строки

Генератор паролей

Автор: Narayana Vyas Kondreddi | добавлено: 04.02.2011, 20:20 | просмотров: 2990 (1+) | комментариев: 0 | рейтинг: *x0
Хранимая процедура SQL Server, позволяющая генерировать уникальные пароли. Процедура принимает два параметра. Первый указывает максимальный размер генерируемого пароля (по умолчанию - 8). Второй - тип пароля, который может быть простым (simple) - состоящим из маленьких букв, либо сложным (complex) - состоящим из всем доступных символов.

Инструкции

Использовать, например так:

-- простой пароль из 4 символов
exec random_password 4

-- сложный пароль из 12 символов
exec random_password 12, 'complex'

Код

CREATE PROC random_password
(
@len int = 8, --длина пароля
@password_type char(7) = 'simple' -- simple - простой пароль, complex - сложный пароль
)
AS
BEGIN
DECLARE @password varchar(25), @type tinyint, @bitmap char(6)
SET @password='' 
SET @bitmap = 'uaeioy' 
WHILE @len > 0
BEGIN
	IF @password_type = 'simple' --простой пароль
	BEGIN
	IF (@len%2) = 0
		
		SET @password = @password + SUBSTRING(@bitmap,CONVERT(int,ROUND(1 + (RAND() * (5)),0)),1)
	ELSE 
		SET @password = @password + CHAR(ROUND(97 + (RAND() * (25)),0))
		
	END
	ELSE --сложный пароль
	BEGIN
		SET @type = ROUND(1 + (RAND() * (3)),0)

		IF @type = 1 
			SET @password = @password + CHAR(ROUND(97 + (RAND() * (25)),0))
		ELSE IF @type = 2 
			SET @password = @password + CHAR(ROUND(65 + (RAND() * (25)),0))
		ELSE IF @type = 3
			SET @password = @password + CHAR(ROUND(48 + (RAND() * (9)),0))
		ELSE IF @type = 4
			SET @password = @password + CHAR(ROUND(33 + (RAND() * (13)),0))
	END

	SET @len = @len - 1
END

SELECT @password --выводим результат

END
Об авторе

Narayana Vyas Kondreddi

Нет информации об авторе...
Narayana Vyas Kondreddi
Последние комментарии (всего: 0)

Добавлять комментарии могут только зарегистрированные пользователи сайта.
Если у Вас уже есть учетная запись на Kbyte.Ru, пройдите процедуру авторизации OpenID.
Если Вы еще не зарегистрированы на Kbyte.Ru - зарегистрируйтесь.


Нет комментариев...

Авторизация
 
OpenID
Зарегистрируйся и получи 10% скидку на добавление своего сайта в каталоги! Подробнее »
Поиск по сайту
Реклама
Счетчики