Форум программистов, компьютерный форум, киберфорум
Наши страницы
Batch (CMD/BAT)
Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 26, средняя оценка - 4.96
Visualru
0 / 0 / 1
Регистрация: 05.02.2013
Сообщений: 71
#1

Генератор ключей - CMD/BAT

27.05.2013, 17:04. Просмотров 4503. Ответов 35
Метки нет (Все метки)

Есть генератор ключей,который сохраняет их в текстовый файл (txt)
Можно указывать количество создаваемых ключей и длину.
Осталась лишь проблема,что он создает одинаковые ключ в файл,сколько бы их не указывал.
Как сделать так,что бы каждый ключ был разным?

Код:
Bash
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
@echo off
setlocal
 
for %%i in (q Q w W e E r R t T y ^
            Y u U i I o O p P a A ^
            s S d D f F g G h H j ^
            J k K l L z Z x X c C ^
            v V b B n N m M 0 1 2 ^
            3 4 5 6 7 8 9  ^
           ) do call:set "%%i"
 
Set /p long="Введите длину пароля: "
Set /p count="Введите количество создаваемых паролей: "
for /f "tokens=2 delims==" %%i in ('set sym_') do call:key "%%i"
FOR /l %%i IN (1 1 %count%) do echo %key%>>generator.txt
goto:eof
 
:set
set "sym_%random%=%~1"
 
goto:eof
 
:key
 
set /a cnt+=1
if not %cnt% gtr %long% set "key=%key%%~1"

http://www.cyberforum.ru/cmd-bat/thread104281.html
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
27.05.2013, 17:04
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Генератор ключей (CMD/BAT):

Добавление ключей в реестр
Иногда текст в CMD отображается какими-то странными символами , для этого есть...

Конвейер команд: DIR без ключей и FIND
Здравствуйте! Предварительно создайте каталог Примеры, а в нём - несколько...

Возможность задания ключей для bat-файла в произвольном порядке
Здравствуйте! В bat файле предусмотрено, что он может быть запущен с ключом «а»...

Генератор
@echo off REM MEDE IN MSN BVP :start ECHO ўўҐ¤ЁвҐ **з*«® Ј®¤* set x=1940...

Генератор случайных букв
Генератор случайных букв. @echo off set min=1 set max=26 set /a...

35
Eva Rosalene
Male-to-Female
4049 / 1586 / 301
Регистрация: 06.01.2013
Сообщений: 4,176
Завершенные тесты: 2
27.05.2013, 17:17 #2
Лучший ответ Сообщение было отмечено ComSpec как решение

Решение

Я как-то не очень понял код, пoэтому написал с нуля.

Bash
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
@echo off
setlocal enabledelayedexpansion
set nabor=qQwWeErRtTyYuUiIoOpPaAsSdDfFgGhHjJkKlLzZxXcCvVbBnNmM1234567890
set /p long=Length of password:    ^>
set /p num=Count of passwords:    ^>
for /L %%A IN (1,1,%num%) DO (
 call :writePwd passlist.txt
)
echo.Complete
pause>nul
exit /b
 
:writePwd
set Pwd=
for /L %%A IN (1,1,%long%) DO (
 call :getRandS
 set Pwd=!Pwd!!rands!
)
echo.%Pwd%>>"%~1"
exit /b
 
:getRandS
set /a RandKey=%RANDOM% %% 62
set rands=!nabor:~%RandKey%,1!
exit /b

Не по теме:

Я буквально сегодня написал на vbs шифровщик текстовых файлов, может к списку паролей будет нужен?



UPD: Пофиксил код
2
reguser
0 / 0 / 0
Регистрация: 23.12.2009
Сообщений: 38
12.01.2015, 23:35 #3
Ребят, доброго дня всем.
Проблемка у меня с батниками, прошу помощи вашей.
Нужно что бы когда в запущенном батнике пишешь 0123456789 и нажимаешь ввод, то в блокноте должно быть написанно так - 01102030405060708090

Bash
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
@echo off
COLOR 0A
setlocal enableextensions enabledelayedexpansion
echo.
echo.
echo.
echo.
echo.
echo.
echo.
echo.
 
set pss0=01
set pss1=10
set pss2=20
set pss3=30
set pss4=40
set pss5=50
set pss6=60
set pss7=70
set pss8=80
set pss9=90
 
set /p sValue1=Введите ключ пароля:
if "%sValue1%" equ "0" >Log.txt echo !pss0! | Start "" "log.txt" | tasklist | find "notepad.exe"
if "%sValue1%" equ "1" >Log.txt echo !pss1! | Start "" "log.txt" | tasklist | find "notepad.exe"
if "%sValue1%" equ "2" >Log.txt echo !pss2! | Start "" "log.txt" | tasklist | find "notepad.exe"
if "%sValue1%" equ "3" >Log.txt echo !pss3! | Start "" "log.txt" | tasklist | find "notepad.exe"
if "%sValue1%" equ "4" >Log.txt echo !pss4! | Start "" "log.txt" | tasklist | find "notepad.exe"
if "%sValue1%" equ "5" >Log.txt echo !pss5! | Start "" "log.txt" | tasklist | find "notepad.exe"
if "%sValue1%" equ "6" >Log.txt echo !pss6! | Start "" "log.txt" | tasklist | find "notepad.exe"
if "%sValue1%" equ "7" >Log.txt echo !pss7! | Start "" "log.txt" | tasklist | find "notepad.exe"
if "%sValue1%" equ "8" >Log.txt echo !pss8! | Start "" "log.txt" | tasklist | find "notepad.exe"
if "%sValue1%" equ "9" >Log.txt echo !pss9! | Start "" "log.txt" | tasklist | find "notepad.exe"
del log.txt
endlocal
exit
0
ComSpec
3400 / 1945 / 627
Регистрация: 26.02.2014
Сообщений: 1,457
13.01.2015, 00:07 #4
Лучший ответ Сообщение было отмечено ComSpec как решение

Решение

Bash
1
2
3
4
5
6
7
8
@echo off& color 0A
setlocal enableextensions enabledelayedexpansion
for /l %%i in (1 1 8) do echo.
set n=-1& for %%i in ("01" "10" "20" "30" "40" "50" "60" "70" "80" "90") do set/a n+=1& set pss!n!=%%~i
set/p sValue1=Введите ключ пароля: 
<nul>"log.txt" (for /f %%i in ('cmd/u/c echo !sValue1!^| more') do set/p=!pss%%i!)
start "" "log.txt"& for /l %%i in (1 1 1000) do pause<nul>nul
del "log.txt"& endlocal& exit/b 0
1
reguser
0 / 0 / 0
Регистрация: 23.12.2009
Сообщений: 38
13.01.2015, 05:30 #5
ComSpec, Супер, спасибо огромное, вы меня очень выручили.!

А как в этом коде сделать так что бы меньше 3-х цифр и больше 9-ти он не принимал?
Ну например при вводе в запущенный батник 1-го или 2-х цифр и нажав ввод он писал что-то типа - "Для данной операции требуется ввода не менее 3-х цифр" ???

Так же и после ввода более 9-ти цифр, типа - "Данная операция ввода более 9-ти цифр не предусматривает".

Еще раз огромное спасибо за помощь...!
0
ComSpec
3400 / 1945 / 627
Регистрация: 26.02.2014
Сообщений: 1,457
13.01.2015, 10:54 #6
Лучший ответ Сообщение было отмечено ComSpec как решение

Решение

Bash
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
@echo off& color 0A
setlocal enableextensions enabledelayedexpansion
:start
for /l %%i in (1 1 8) do echo.
set n=-1& for %%i in ("01" "10" "20" "30" "40" "50" "60" "70" "80" "90") do set/a n+=1& set pss!n!=%%~i
set/p "sValue1=Введите ключ пароля: "
if not defined sValue1 (cls& goto start)
echo !sValue1!|>nul findstr [^^0-9]&& (cls& goto start)
set n=& (for /f %%i in ('cmd/u/c echo !sValue1!^| more') do set/a n+=1)
if %n% leq 2 (
 echo Для данной операции требуется ввод не менее 3-х цифр.
 for /l %%i in (1 1 10000) do pause<nul>nul
 cls& goto start
)
if %n% gtr 9 (
 echo Данная операция ввод более 9-ти цифр не предусматривает.
 for /l %%i in (1 1 10000) do pause<nul>nul
 cls& goto start
)
<nul>"log.txt" (for /f %%i in ('cmd/u/c echo !sValue1!^| more') do set/p=!pss%%i!)
start "" "log.txt"& for /l %%i in (1 1 1000) do pause<nul>nul
del "log.txt"& endlocal& exit/b 0
reguser, я Вам ещё ввёл в код защиту от "пустого" ввода и защиту от ввода символов, не являющихся цифрами. Пакетный файл эти действия просто будет игнорировать, возвращаясь к вводу данных.
2
reguser
0 / 0 / 0
Регистрация: 23.12.2009
Сообщений: 38
13.01.2015, 12:02 #7
ComSpec, Вы гений, спасибо огромнейшее уважаемый!
Моих скудных знаний просто не хватает на такое чудо !!!

Прошу прощения, если я вам не надоел еще я позволю себе еще код небольшой.
У меня в загажниках валяется код от куда то с интернета тоже, там вообще фишка в том что когда вводишь пароль то не видно вводимый текст, такое в данном коде можно реализовать?

Bash
1
2
3
4
5
6
7
8
9
10
11
12
13
14
@set @x=0 /*
@echo off
 
SETLOCAL EnableDelayedExpansion
set /p $Pswd=<x.dat
set /p $Input=  Введите пароль для продолжения: <nul
for /f "delims=" %%a in ('cscript /nologo /e:jscript "%~f0"') do set "$Input=%%a"
if not "!$Input!"=="!$Pswd!" Cls&echo Неправильный пароль, завершение работы&Exit /B 1
pause
::
:: Тут код батника
::
exit>nul */
WScript.Echo(WScript.CreateObject("ScriptPW.Password").GetPassword());
0
buggydancer
250 / 238 / 16
Регистрация: 31.12.2009
Сообщений: 324
13.01.2015, 13:14 #8
reguser, а какой версии у вас виндовс? или вы этот объект ("ScriptPW.Password") отдельно ставили?
ато у меня (на ХР sp2) ваш яваскрипт из поста #7 запускаться не хочет
0
reguser
0 / 0 / 0
Регистрация: 23.12.2009
Сообщений: 38
13.01.2015, 13:16 #9
XP x64 EN Corp - на данный момент...
У меня запускается.
0
buggydancer
250 / 238 / 16
Регистрация: 31.12.2009
Сообщений: 324
13.01.2015, 13:49 #10
Цитата Сообщение от reguser Посмотреть сообщение
У меня запускается.
Да, виноват, через cscript.exe у меня тоже отработал, а через wscript.exe не захотел.
А вы HTA-шку с EditBox-ом парольным для вашего скрипта делать не пробовали?
0
reguser
0 / 0 / 0
Регистрация: 23.12.2009
Сообщений: 38
13.01.2015, 14:03 #11
Нет, а вчем вся прелесть?
0
buggydancer
250 / 238 / 16
Регистрация: 31.12.2009
Сообщений: 324
13.01.2015, 14:07 #12
Да вообще-то функционал скрипта ComSpec только его можно в граф. интерфейс засунуть, типа этого:
HTML5
1
2
3
4
5
6
7
8
9
10
11
12
<html>
<head><title>reguser</title></head>
<SCRIPT LANGUAGE="JavaScript">
function a(){window.alert("entered password: " + window.frm.t.value);}
</SCRIPT>
<body>
  <form id="frm">
  <INPUT TYPE="password" NAME="t" SIZE=12>
  <input type="button" value="button" onclick="a();">
  </form>
</body>
</html>
1
reguser
0 / 0 / 0
Регистрация: 23.12.2009
Сообщений: 38
13.01.2015, 23:31 #13
А, ясно. Но мне именно в батнике нужно.
Еще бы он мог скрывать вводимые цифры, цены бы ему небыло.
У меня не получится внедрить такой функционал в батник от ComSpec, а жаль, он так все красиво и грамотно сделал.

Добавлено через 9 часов 13 минут
ComSpec, прошу прошения за то что отнимаю у вас время, но тот код который вы любезно написали не воспринимает символы в место цифр типа !@#$&_№%)(: -

Код
"Z1#Tl^X1_k" "8k#564uR8Z" "20" "30" "40" "50" "60" "70" "80" "90"
а если там стоит знак % батник вообще не запускается...
Можно как-нибудь поправить.
Заранее благодарю за вашу отзывчивость.
0
ComSpec
3400 / 1945 / 627
Регистрация: 26.02.2014
Сообщений: 1,457
14.01.2015, 07:33 #14
Цитата Сообщение от reguser Посмотреть сообщение
не воспринимает символы в место цифр типа !@#$&_№%)(: -

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

1) Нужно забыть об использовании символов "*" и "?";
2) также практически надо забыть о кавычках;
3) символы пробела и знака равенства неприемлимы в начале блоков;
4) символы процента необходимо удваивать;
5) символы "^" надо учетверять;
6) символы "!" нужно предварять тремя символами "^".

И это всё. Если следовать этим требованиям, то проблемы с остальными символами возникать не будут!

Пример: чтобы получить в тексте блок
!%^
,
необходимо записать
^^^!%%^^^^
.



Цитата Сообщение от reguser Посмотреть сообщение
У меня в загажниках валяется код от куда то с интернета тоже, там вообще фишка в том что когда вводишь пароль то не видно вводимый текст, такое в данном коде можно реализовать?

Реализовать, наверное, можно б было, если бы не одно обстоятельство: в современных ОС Windows отсутствует "%SystemRoot%\System32\scriptpw.dll", а, следовательно, отсутствует "класс программируемых объектов с именем "ScriptPW.Password"". Но можно будет подумать о других вариантах.
1
reguser
0 / 0 / 0
Регистрация: 23.12.2009
Сообщений: 38
14.01.2015, 08:19 #15
ComSpec, спасибо большое, я учту ваши рекомендации.

Но можно будет подумать о других вариантах.
Было бы великолепно. Это будет генератор паролей для wifi, хочется что бы стоящие за спиной не видели вводимые цифры.

Прошу прощения за то что отнимаю у вас время... Спасибо огромное.

Добавлено через 7 минут
Из символов применимых в данном коде я так понимаю остаются только 9 рабочих - @#$_№;-)(
Правильно я понял?

Добавлено через 24 минуты
...к стати с & он тоже не запускается.

Добавлено через 3 минуты
0
buggydancer
250 / 238 / 16
Регистрация: 31.12.2009
Сообщений: 324
14.01.2015, 16:47 #16
Цитата Сообщение от ComSpec Посмотреть сообщение
можно будет подумать о других вариантах
так я reguser и предлагал HTA-шку в #12 посте
Цитата Сообщение от reguser Посмотреть сообщение
что бы стоящие за спиной не видели вводимые цифры
вот так она выглядит на скрине после нажатия кнопки (это можно исправить):
Генератор ключей
остается только подпраить ее типа такого:
Javascript
1
2
var objSh = WScript.CreateObject("WScript.Shell");
objSh.Run("cmd /с batnik.bat passwd");
здесь batnik.bat - скрипт ComSpec из #6 поста,
может если чуть переделанный для параметра %1 - passwd
1
reguser
0 / 0 / 0
Регистрация: 23.12.2009
Сообщений: 38
14.01.2015, 19:53 #17
buggydancer, спасибо большое, но дело в том почему я хочу батник-то, там варианты алгоритма шифрования мастер-ключа к паролю который выводится в блокноте. Так вот, вариантов алгоритма великая куча, потому время от времени хочу менять его прямо в коде, ну например если друг допустим попросит эту утилитку я ему уже с другим алгоритмом дам ее, ну что бы пароли вдруг не совпадали, хотя вероятности мало, но мало ли, конвертирую в ехе-шник и все.
Как то так.

Я очень ценю вашу помощь друзья, и ни в коем случае не отказываюсь от нее, просто задачу поставил более универсальную.

К стати как отодвинуть данную комбинацию строки от края окна? -

Bash
1
set/p "sValue1=Введите мастер-ключ пароля: "
0
ComSpec
3400 / 1945 / 627
Регистрация: 26.02.2014
Сообщений: 1,457
14.01.2015, 20:35 #18
Цитата Сообщение от reguser Посмотреть сообщение
К стати как отодвинуть данную комбинацию строки от края окна? -
Bash
1
set/p "sValue1=Введите мастер-ключ пароля: "




Bash
1
2
3
for /l %%i in (1 1 5) do call set SPs= %%SPs%%
for /f %%i in ('"prompt $h& for %%j in (.) do rem"') do set "BS=%%i"
set/p "sValue1=%BS%%SPs%Введите мастер-ключ пароля: "
Вместо цифры "5" поставьте желаемую длину сдвига.
1
reguser
0 / 0 / 0
Регистрация: 23.12.2009
Сообщений: 38
14.01.2015, 20:39 #19
Премного благодарен вам ComSpec
0
ComSpec
3400 / 1945 / 627
Регистрация: 26.02.2014
Сообщений: 1,457
15.01.2015, 11:23 #20
Лучший ответ Сообщение было отмечено ComSpec как решение

Решение

Цитата Сообщение от buggydancer Посмотреть сообщение
Цитата Сообщение от ComSpec
можно будет подумать о других вариантах
так я reguser и предлагал HTA-шку в #12 посте
Цитата Сообщение от reguser
что бы стоящие за спиной не видели вводимые цифры





buggydancer, "засунул" Вашу "HTA-шу" в пакетный файл, который будет её запускать, а потом из неё перезапускаться с новыми параметрами. Я, конечно, видел много "гибридов", но такого варианта (с перезапуском) не встречал. buggydancer, спасибо за код, он послужит великому делу возрождения пакетных файлов. А я-то уж думал приложение MS-DOS генерировать...


Bash
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
@echo off& color 0a& setlocal enableextensions
:start
%~1 mshta "about:<html><head><title>reguser</title></head><script language="javascript">function a(){new ActiveXObject('WScript.Shell').Run('"%~nx0" : "'+window.frm.t.value+'"');close();}</script><body><center><br><br><br><br><br><br><br><br><br><br><form id='frm'><input type='password' name='t' size=12><input type='button' value='Введите ключ пароля.' onclick='a();'></form></center></body></html>"& exit/b 0
set n=-1& for %%i in ("01" "10" "20" "30" "40" "50" "60" "70" "80" "90") do set/a n+=1& call set "pss%%n%%=%%~i"
set "sValue1=%~2"
if not defined sValue1 (cls& call:start ""& exit/b 1)
echo "%sValue1%"|>nul findstr ^^\".*[^^0-9].*\"$&& (cls& call:start ""& exit/b 2)
set n=& (for /f %%i in ('cmd/u/c echo %sValue1%^| more') do set/a n+=1)
if %n% leq 2 (
 echo Для данной операции требуется ввод не менее 3-х цифр.
 for /l %%i in (1 1 10000) do pause<nul>nul
 cls& call:start ""& exit/b 3
)
if %n% gtr 9 (
 echo Данная операция ввод более 9-ти цифр не предусматривает.
 for /l %%i in (1 1 10000) do pause<nul>nul
 cls& call:start ""& exit/b 4
)
<nul>"log.txt" (for /f %%i in ('cmd/u/c echo %sValue1%^| more') do cmd/v/c set/p=!pss%%i:^^^^^^^^=^^^^!)
start "" "log.txt"& for /l %%i in (1 1 1000) do pause<nul>nul
del "log.txt"& endlocal& exit/b 0

reguser, если будете использовать зтот вариант, то в инструкцию необходимо внести следующие изменения:

1) символы "!" и "^" можно использовать как таковые (без зкранирования);
2) символ процента нужно учетверять.
2
15.01.2015, 11:23
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
15.01.2015, 11:23
Привет! Вот еще темы с решениями:

Генератор xml-файла со своими значениями
Приветствую! Помогите дописать батник. Пытаюсь сделать генерируемый шаблон...

Возможно ли создать генератор игры Судоку скриптом БАТ
На других языках тема изъеденная (на этом сайте тоже) на БАТе не нашел. Вообще...

Генератор рандомной последовательности из определённых символов и заданной длинны
как можно реализовать генератор рандомной последовательности из определённых...

генератор ключей
как сделать код чтобы он генерировал рандомные ключи , чтобы получалось чтото...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru