|
11.11.2011, 08:14
|
#1
|
AnyKey`щик
Регистрация: 11.11.2011
Адрес: United Emirates of Ukraine
Сообщений: 5
Написано 2 полезных сообщений (для 5 пользователей)
|
Гламурный генератор паролей
Во время изучения PureBasic я написал генератор паролей. Размер бинарника такой же, как и размер скриншота. Это 26 килобайт.
Исходный код:
Global Msg1$
Enumeration
#Window_0
EndEnumeration
Enumeration
#Combo_Lang
#Text_Lang
#Spin_PassLen
#Text_KeyLen
#Frame3D_TKWC
#CheckBox_N
#CheckBox_BL
#CheckBox_SL
#Button_ToClipboard
#Button_Generate
#String_Pass
EndEnumeration
Enumeration
#UKR_LANG
#ENG_LANG
#RUS_LANG
EndEnumeration
Procedure SetWindowLang(Lang)
Select Lang
Case #UKR_LANG:
SetGadgetText(#CheckBox_N, "Цифри")
SetGadgetText(#CheckBox_BL, "Великі літери")
SetGadgetText(#CheckBox_SL, "Малі літери")
SetGadgetText(#Text_Lang, "Мова:")
SetGadgetText(#Text_KeyLen, "Довжина пароля:")
SetGadgetText(#Button_ToClipboard, "До буфера обміну")
SetGadgetText(#Button_Generate, "Створити")
SetGadgetText(#Frame3D_TKWC, "Пароль міститиме")
Msg1$="Алфавіт пароля порожній!"
Case #ENG_LANG
SetGadgetText(#CheckBox_N, "Numbers")
SetGadgetText(#CheckBox_BL, "Big letters")
SetGadgetText(#CheckBox_SL, "Small letters")
SetGadgetText(#Text_Lang, "Language:")
SetGadgetText(#Text_KeyLen, "Pass length:")
SetGadgetText(#Button_ToClipboard, "To clipboard")
SetGadgetText(#Button_Generate, "Generate")
SetGadgetText(#Frame3D_TKWC, "The password will contains")
Msg1$="Alphabet of password is empty!"
Case #RUS_LANG
SetGadgetText(#CheckBox_N, "Цифры")
SetGadgetText(#CheckBox_BL, "Заглавные буквы")
SetGadgetText(#CheckBox_SL, "Строчные буквы")
SetGadgetText(#Text_Lang, "Язык:")
SetGadgetText(#Text_KeyLen, "Длина пароля:")
SetGadgetText(#Button_ToClipboard, "В буфер обмена")
SetGadgetText(#Button_Generate, "Создать")
SetGadgetText(#Frame3D_TKWC, "Пароль будет содержать")
Msg1$="Алфавит пароля пуст!"
EndSelect
EndProcedure
Procedure Open_Window_0()
If OpenWindow(#Window_0, 331, 31, 261, 237, "Free Password Generator", #PB_Window_SystemMenu | #PB_Window_SizeGadget | #PB_Window_TitleBar )
ComboBoxGadget(#Combo_Lang, 80, 20, 160, 20)
AddGadgetItem(#Combo_Lang, -1,"Українська")
AddGadgetItem(#Combo_Lang, -1,"English")
AddGadgetItem(#Combo_Lang, -1, "Русский")
SetGadgetState(#Combo_Lang, 1)
TextGadget(#Text_Lang, 10, 20, 60, 20, "")
SpinGadget(#Spin_PassLen, 80, 60, 50, 20, 4, 50, #PB_Spin_Numeric)
SetGadgetState(#Spin_PassLen, 8)
TextGadget(#Text_KeyLen, 10, 55, 60, 30, "")
Frame3DGadget(#Frame3D_TKWC, 10, 90, 240, 80, "")
CheckBoxGadget(#CheckBox_N, 20, 110, 90, 20, "")
CheckBoxGadget(#CheckBox_BL, 120, 110, 110, 20, "")
CheckBoxGadget(#CheckBox_SL, 20, 140,100, 20, "")
ButtonGadget(#Button_ToClipboard, 10, 180, 140, 20, "")
ButtonGadget(#Button_Generate, 160, 180, 90, 20, "")
StringGadget(#String_Pass, 10, 210, 240, 20, "")
SetWindowLang(1)
EndIf
EndProcedure
Open_Window_0()
Repeat
EventID = WaitWindowEvent()
If EventID = #PB_Event_Gadget
Select EventGadget()
Case #Combo_Lang:
SetWindowLang(GetGadgetState(#Combo_Lang))
Case #Button_Generate:
PassAlphabet$=""
If GetGadgetState(#CheckBox_BL)=#PB_Checkbox_Checked
PassAlphabet$=PassAlphabet$+"ABCDEFGHIJKLMNOPQRSTUVWXYZ"
EndIf
If GetGadgetState(#CheckBox_SL)=#PB_Checkbox_Checked
PassAlphabet$=PassAlphabet$+"abcdefghijklmnopqrstuvwxyz"
EndIf
If GetGadgetState(#CheckBox_N)=#PB_Checkbox_Checked
PassAlphabet$=PassAlphabet$+"0123456789"
EndIf
If PassAlphabet$=""
MessageBox_(NULL, Msg1$, "Free Password Generator", 16)
Else
X=Len(PassAlphabet$)
Pass$=""
PassLen=GetGadgetState(#Spin_PassLen)
For N = 1 To PassLen
Pass$=Pass$+Mid(PassAlphabet$, Random(X-1)+1, 1)
Next N
SetGadgetText(#String_Pass, Pass$)
EndIf
Case #Button_ToClipboard:
SetClipboardText(GetGadgetText(#String_Pass))
EndSelect
EndIf
Until EventID = #PB_Event_CloseWindow
Ссылка на PasteBin
Исходник+Бинарник+Иконка Sendspace
|
(Offline)
|
|
Эти 4 пользователя(ей) сказали Спасибо DniproPirate за это полезное сообщение:
|
|
11.11.2011, 15:04
|
#2
|
Дэвелопер
Регистрация: 21.11.2009
Сообщений: 1,701
Написано 658 полезных сообщений (для 1,963 пользователей)
|
Ответ: Гламурный генератор паролей
Насчёт английского языка:
Не "contains", а "contain". Не "numbers", а "digits".
__________________
осталось 7
|
(Offline)
|
|
Сообщение было полезно следующим пользователям:
|
|
11.11.2011, 15:21
|
#3
|
Ференька
Регистрация: 26.01.2007
Адрес: улица Пушкина дом Колотушкина
Сообщений: 10,742
Написано 5,461 полезных сообщений (для 15,675 пользователей)
|
Ответ: Гламурный генератор паролей
Не Big, а Capital
__________________
Мои проекты:
Анальное Рабство
Зелёный Слоник
Дмитрий Маслов*
Различие**
Клюква**
* — в стадии разработки
** — в стадии проектирования
Для проектов в стадии проектирования приведены кодовые имена
|
(Offline)
|
|
11.11.2011, 16:41
|
#4
|
Дэвелопер
Регистрация: 06.04.2009
Адрес: Запорожье
Сообщений: 1,500
Написано 1,011 полезных сообщений (для 4,642 пользователей)
|
Ответ: Гламурный генератор паролей
Ну, тогда еще правильнее будет "Upper case" и "Lower case".
__________________
|
(Offline)
|
|
Эти 2 пользователя(ей) сказали Спасибо .Squid за это полезное сообщение:
|
|
11.11.2011, 20:24
|
#5
|
AnyKey`щик
Регистрация: 11.11.2011
Адрес: United Emirates of Ukraine
Сообщений: 5
Написано 2 полезных сообщений (для 5 пользователей)
|
Ответ: Гламурный генератор паролей
Полный аналог лежит на соурцфорже и весит в 4 раза больше, ибо написан на Дельфи. Весь перевод я оттудого передрал. Я то понимаю что Capital, но под словом английский в програмах подразумевается "Basic English" или "Niggaz English". Как там Раммштайн по-русски поет "Я буду платить. Мая твая любить"
|
(Offline)
|
|
Сообщение было полезно следующим пользователям:
|
|
Ваши права в разделе
|
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 15:00.
|