Показать полную графическую версию : Генератор паролей
Foreigner
13-01-2015, 08:35
registeruser1, А представь, что батник кто-то изменит, например значения паролей:
set pss0=ABDCE
Пароли окажутся неверными. Т.е. нет никакой защиты.
registeruser1
13-01-2015, 08:55
Foreigner,
Ну во первых, батник делаю для себя и маловероятно что его кто-то изменит.
Во вторых специально делаю код универсальным и именно в батнике что бы при надобности можно было алгоритмы менять.
И в третьих если нужно будет я его конвертирую в exe-шник.
Как-то так...
Foreigner
13-01-2015, 09:42
батник делаю для себя »
Тогда какой смысл в нем? С таким же успехом можно написать все пароли в блокноте и положить на рабочий стол. Или, если паранойя, вложить в шифрованный архив.
registeruser1
13-01-2015, 09:46
если нужно будет я его конвертирую в exe-шник.
а то алгоритм всем интересен »
Упаси бог!
registeruser1
13-01-2015, 13:04
Ну что ж, и на том Вас благодарю...
Буду решать свою задачу.
Спасибо за общение...
Foreigner
13-01-2015, 13:50
registeruser1, Спасибо за саму идею, может не с паролями, так с чем-нибудь еще пригодится. Например для какой-нибудь викторины или еще чего-нибудь.
registeruser1
13-01-2015, 14:04
Рад помочь...
Komoliddin_Fuzaylitdinov@fb
23-07-2020, 09:53
registeruser1, попробуйте (из коллекции)
Код:
@Echo Off
:: Количество символов
Set PassLenght=9
SetLocal EnableDelayedExpansion EnableExtensions
Set TotalChars=65
Set CharSet=0123456789$#_abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWQYZ
:Loop
Set /A Rnd=%TotalChars%*%Random%/32768
Set Pswd=!CharSet:~%Rnd%,1!%Pswd%
Set /A PassLenght-=1
If %PassLenght% GTR 0 GoTo Loop
Echo %Pswd%
Pause>Nul »
а как ограничит символы?
мне надо чтобы был 20 шт : Set CharSet=0123456789ABCDEFGHIJKLMNOPQRSTUVWQYZ
Пример: 20J24W34NZN6ZSLQT1GS
Foreigner
23-07-2020, 11:00
Echo %Pswd:~0,20%
Как вариант 20-значного пароля, powershell
(New-Guid).Guid.Split('-')[0..3] -join ''
Foreigner, бесполезно извлекать 20-символьную подстроку из 9-символьного пароля
В общем случае GUID совершенно не подходит для создания паролей. Нужно просто понимать как и для чего он формируется: GUID предсказуемо уникальный, а первые биты - так вообще совершенно неуникальный номер версии. Первые реализации формировали GUID тупо конкатенацией mac-адреса и времени. Современные реализации более хитрые, но случайного там совсем немного.
Komoliddin_Fuzaylitdinov@fb,
нужно в коде указать желаемую длину пароля: PassLenght
и размер алфавита (длину CharSet): TotalChars
Foreigner
23-07-2020, 11:47
В общем случае GUID совершенно не подходит для создания паролей. »
пару месяцев назад мерялись паролями. Guid, да, неуникальный, на миллион пара совпадений при выборке из него подстроки (не 32 символа [a-z0-9], а вроде 8 или 12).
Можно конечно
(Get-Random ([char[]](48..57 + 97..122)) -Count 20) -join ''
Или
Add-Type -AssemblyName System.Web
[System.Web.Security.Membership]::GeneratePassword(20,0)
Но смысл?
greg zakharov
23-07-2020, 14:32
Не делайте. Его генератор %RANDOM% ни разу не случайный.
От слова "совсем". Случайность в информатике невозможна в принципе, а называемое "случайным" фактически является псевдослучайным.
Источник истинной случайности найти крайне сложно, если это вообще возможно, отсюда и такая штука как ГСПЧ (например, вихрь Мерсена). ГСПЧ, между тем, также используется для генерации GUID\UUID, так что не соль важно на основе последних генерируется пароль или всё же посредством pwsh, например:
-join(Get-Random ('!'..'z') -Count 20)
суть всё равно сводится к эфемерности случайности как таковой.
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.
Available in ZeroNet 1osznRoVratMCN3bFoFpR2pSV5c9z6sTC