rusqhyazeubebgcahrcsdanlenetfifrglkadeelhuisgaitkkkylvltmknoplptrosrskslessvtrukuz

Хранимая процедура. Генератор паролей

Больше
7 мес. 5 дн. назад - 7 мес. 5 дн. назад #185 от О.Коровяков
О.Коровяков создал тему: Хранимая процедура. Генератор паролей
Хранимая процедура 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
Последнее редактирование: 7 мес. 5 дн. назад пользователем О.Коровяков.

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Подпишитесь на наши новости...

Если вам интересны материалы опубликованных на Нашем сайте, Вы можете подписаться на рассылку информационных бюллетеней о новых публикациях ... Просто введите адрес электронной почты на какую Вы хотите получать Новости и нажмите кнопку "Подписаться"

Контакт Инфо

Ok-Wood.
08304 ул.Салютная,c.Гнедын,
Киевская обл, Украина
  • Тел: +39 067 492 41 24
    Tel: +38 095 095 88 60
  • Email: info@ok-wood.com.ua
  • Web: ok-wood.com.ua

Весь процесс строительства описан на страницах сайта, но более подробно о технологии, методах строительства, и всех деталях - Вы можете узнать в книге.