Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - Вопрос по скрипту для генерации паролей.

Ответить
Настройки темы
CMD/BAT - Вопрос по скрипту для генерации паролей.

Новый участник


Сообщения: 2
Благодарности: 0

Профиль | Отправить PM | Цитировать


Изменения
Автор: SoulGood
Дата: 12-05-2020
Доброго времени всем.
Подскажите пожалуйста, как будет выглядеть код батника, если необходимо сгенерировать все возможные пароли без повторов, содержащие данный набор символов и букв:
0123456789abcdefghijklmnopqrstuvwxyz
Длина пароля - 6 букв и цифр.
С сохранением всех сгенерированных паролей в файл.
Перепробовал не один батник. Но то, генерация рандомная по кол-ву цифр, то скрипт генерирует по одному паролю.

Отправлено: 15:34, 12-05-2020

 

Аватара для Dreamer_UFA

Ветеран


Сообщения: 757
Благодарности: 112

Профиль | Отправить PM | Цитировать


Принципиально батник ?
Есть прекрасные программы для генерации паролей.

Сам юзаю VipNet Password Generator. Посмотрите, может перекроет ваши потребности
Это сообщение посчитали полезным следующие участники:

Отправлено: 16:13, 12-05-2020 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Новый участник


Сообщения: 2
Благодарности: 0

Профиль | Отправить PM | Цитировать


Dreamer_UFA, На сколько я понял, в ней нет нужного функционала. За ответ спасибо.

Отправлено: 16:37, 12-05-2020 | #3


Аватара для DJ Mogarych

fascinating rhythm


Moderator


Сообщения: 6491
Благодарности: 1465

Профиль | Отправить PM | Цитировать


Powershell:
Код: Выделить весь код
$c = 0
$pass = do {
(get-random (([char[]](0..255) -cmatch '[a-z]' |get-random -Count 3) + `
([char[]](0..255) -cmatch '[0-9]' |Get-Random -count 3)) -count 6) -join ''
$c++
} until ($c -eq 100)

$pass > C:\temp\pass.txt

-------
Powershell 7.x | Powershell 5.1 | ffmpeg (docs)

Это сообщение посчитали полезным следующие участники:

Отправлено: 17:25, 12-05-2020 | #4


Ветеран


Сообщения: 1754
Благодарности: 965

Профиль | Цитировать



powershell, правда вне задания (все комбинации перебора строки)

Код: Выделить весь код
0..99 | foreach { (New-Guid).Guid.Substring(0,6) }
Код: Выделить весь код
Add-Type -Assembly System.Web

0..99 | foreach { [Web.Security.Membership]::GeneratePassword(6,0) }

Последний раз редактировалось Foreigner, 12-05-2020 в 19:00.

Это сообщение посчитали полезным следующие участники:

Отправлено: 18:48, 12-05-2020 | #5


Ветеран


Сообщения: 27449
Благодарности: 8086

Профиль | Отправить PM | Цитировать


Коллеги, не надо ничего «генерировать». Нужно просто составить все возможные комбинации.
Это сообщение посчитали полезным следующие участники:

Отправлено: 19:36, 12-05-2020 | #6


Ветеран


Contributor


Сообщения: 2708
Благодарности: 1684

Профиль | Отправить PM | Цитировать


Цитата SoulGood:
если необходимо сгенерировать все возможные пароли без повторов »
то поставленная задача прктически повторяет эту решенную.
Вот та задача с выводом результатов в файл и с Вашим набором символов.
Код: Выделить весь код
@Echo Off
	Set "S=0 1 2 3 4 5 6 7 8 9 a b c d e f g h i j k l m n o p q r s t u v w x y z"
	Set /A M=6
	Set "FileOut=Z:\Box_Out\FileOut.txt"

	Set /A N=10
	For %%@ In (a b c d e f g h i j k l m n o p q r s t u v w x y z) Do Set /A N+=1 &Call Set "@V%%N%%=%%%%%%%%@"

	Set /A MM=%M%+10
	Set "Com="
	Set "Rez=Echo "
	FOR /L %%$ IN (11,1,%MM%) DO Call Set "Com=%%Com%%For %%@V%%$%% In (%S%) Do " &Call Set "Rez=%%Rez%%%%@V%%$%%"
	>"%FileOut%" (%Com%%Rez%)
Exit /B
Упрощенный вариант для 6 символов в строке
Код: Выделить весь код
@Echo Off
	Set "Simb=0 1 2 3 4 5 6 7 8 9 a b c d e f g h i j k l m n o p q r s t u v w x y z"
	Set "FileOut=Z:\Box_Out\FileOut.txt"
	
	>"%FileOut%" (For %%i In (%Simb%) Do For %%j In (%Simb%) Do For %%k In (%Simb%) Do For %%l In (%Simb%) Do For %%m In (%Simb%) Do For %%n In (%Simb%) Do Echo %%i%%j%%k%%l%%m%%n)
Exit /B
Насколько я понимаю, постановка исключает рандомную генерацию паролей: необходимо сгенерировать все возможные пароли. Правда, сколько сотен миллионов строк получится и сколько времени это будет выполняться, подсчитать затрудняюсь.

Лабораторка?

-------
Даже самая сложная проблема обязательно имеет простое, лёгкое для понимания, неправильное решение. Каждое решение плодит новые проблемы.


Последний раз редактировалось megaloman, 12-05-2020 в 20:12.

Это сообщение посчитали полезным следующие участники:

Отправлено: 19:44, 12-05-2020 | #7


Аватара для YuS_2

Crazy


Contributor


Сообщения: 1171
Благодарности: 487

Профиль | Отправить PM | Цитировать


Цитата Iska:
Нужно просто составить все возможные комбинации. »
Посчитаем:
powershell
Код: Выделить весь код
function get-factorial([int]$num = 1) {
	switch ($num -le 1) {
		$true { $num }
		$false {$num*(get-factorial(--$num))}
	}
}

# количество комбинаций
$n = '0123456789abcdefghijklmnopqrstuvwxyz'
$m = 6

$C = (get-factorial $n.length)/((get-factorial $m)*(get-factorial ($n.length - $m)))
$C
1947792 - число комбинаций...
Количество потраченного времени будет зависеть от скорости перебора комбинаций.
Допустим, 10 в секунду. Тогда:
Код: Выделить весь код
$C/10/60/60/24
2,25438888888889 дней непрерывного перебора... как-то так

-------
scio me nihil scire. Ѫ


Отправлено: 20:36, 12-05-2020 | #8


Ветеран


Contributor


Сообщения: 2708
Благодарности: 1684

Профиль | Отправить PM | Цитировать


YuS_2,
Цитата YuS_2:
1947792 »
С комбинаторикой у меня отношения напряженные, но, ИМХО, у Вас вкралась ошибка.
Мы имеем тридцатишестиричную систему исчисления.
Я посчитал тупо: =35*36^0+35*36^1+35*36^2+35*36^3+35*36^4+35*36^5=2 176 782 335
Если в секунду 100000 строк, то 2 176 782 335/100000/60/60=6 час
Строка 6 символов занимает 8 байт. Файл 8*2 176 782 335=17 414 258 680=16Гб

-------
Даже самая сложная проблема обязательно имеет простое, лёгкое для понимания, неправильное решение. Каждое решение плодит новые проблемы.


Последний раз редактировалось megaloman, 12-05-2020 в 22:33.


Отправлено: 22:10, 12-05-2020 | #9


Аватара для Fors1k

Старожил


Сообщения: 193
Благодарности: 112

Профиль | Отправить PM | Цитировать


Цитата megaloman:
ИМХО, у Вас вкралась ошибка »
Вот, можете проверить:
Код: Выделить весь код
Param(
    $m=6, # Размер комбинации
    $n=36 # Количество используемых элементов
)cls

function Get-Possibility{param($m,$n)$i,$j=1,1

    ($n-$m+1)..$n|%{$i*=$_};
    1..$m|%{$j*=$_} ; $i/$j

}

"Вариантов сочетаний: "+(Get-Possibility $m $n)


#Вариантов сочетаний: 1947792

Последний раз редактировалось Fors1k, 13-05-2020 в 01:46.


Отправлено: 23:37, 12-05-2020 | #10



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - Вопрос по скрипту для генерации паролей.

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Доступ - Вопрос по безопасности сохранённых паролей в IE 10. Crysiser Microsoft Windows 8 и 8.1 5 30-06-2016 14:21
2010 - макрос для генерации значений по условиям Elizavetta Microsoft Office (Word, Excel, Outlook и т.д.) 12 03-12-2015 12:21
Вопросы по скрипту Lightbox maasja Вебмастеру 14 04-02-2011 12:39
fpdf класс для генерации pdf с помощью php zvezda_t Вебмастеру 0 29-09-2010 09:06
Вопрос - Программы для генерации и хранения паролей SashaKl Защита компьютерных систем 13 08-10-2009 15:44




 
Переход