Генератор паролей на VBS 09 July 2009, 22:20
Была у меня когда-то чья-то рукописная программа для генерации паролей, с настройкой длины пароля, управление наборами символов, кои будут иметь место в пароле, а потом куда-то она и подевалась. А тут, вдруг, вот понадобилась...Надо было для полторы сотен учеток срочно пароли напоменять. Генератора под рукой нет, искать - лень....Думал - фигня, щас придумаю быстренько....На втором десятке мозг закипел, пальцы путаться стали по клавиатуре....
Тогда придумал на VBS скриптом генерить, а еще чтобы сгенерированный пасворд в буфер ложился...только вот буфер через эксплорер так неохота было использовать ... кто сталкивался - поймет..
Пошел другим путем.
У DK на сайте есть замечательное решение для работы с буфером обмена - вот его и использовал.
Получилось вот так:
'Требуется зарегистрированная в системе библиотека ClipboardHelper.dll
Тогда придумал на VBS скриптом генерить, а еще чтобы сгенерированный пасворд в буфер ложился...только вот буфер через эксплорер так неохота было использовать ... кто сталкивался - поймет..
Set objexplorer = CreateObject("InternetExplorer.Applicati on")
objexplorer.Navigate("about:blank")
objexplorer.document.parentWindow.clipbo ardData.setData "text", password
У DK на сайте есть замечательное решение для работы с буфером обмена - вот его и использовал.
Получилось вот так:
'Требуется зарегистрированная в системе библиотека ClipboardHelper.dll
Dim CaseValue, BtnCode, Clipboard
Set WSHShell=WScript.CreateObject("WScript.S hell")
Set Clipboard=CreateObject("ClipboardHelper.c Clipboard")
On Error Resume Next
BtnCode=4
Do While BtnCode=4
Clipboard.Clear
PassWord=""
Randomize ' Initialize random-number generator.
For i=1 To 8 ' Задаем длину пароля (можно интерактивный запрос делать...но мне длина нужна именно 8 символов)
CaseValue=Int((3*Rnd)+1) ' Generate random value between 1 and 3.
Select Case CaseValue
Case 1 Password=Password+Chr(Int((9*Rnd)+48)) ' Generate random value between "0" and "9".
Case 2 Password=Password+Chr(Int((25*Rnd)+65)) ' Generate random value between "A" and "Z".
Case 3 Password=Password+Chr(Int((25*Rnd)+97)) ' Generate random value between "a" and "z".
End Select
Next
Clipboard.SetText Password
BtnCode=WSHShell.Popup("Пароль скопирован в буфер обмена:"&vbCrLf&""&vbCrLf&Password,0,"Ge nerate Password Result",5)
Loop
В Select Case напихать можно и другие наборы символов, но этих хватило.
Кому интересно, таблица ASCII

В Select Case напихать можно и другие наборы символов, но этих хватило.
Кому интересно, таблица ASCII
(Оставить комментарий)

cheerful