Форум программистов, компьютерный форум, киберфорум
Batch (CMD/BAT)
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.93/76: Рейтинг темы: голосов - 76, средняя оценка - 4.93
0 / 0 / 1
Регистрация: 05.02.2013
Сообщений: 73
1

Генератор ключей

27.05.2013, 17:04. Показов 14669. Ответов 41
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Есть генератор ключей,который сохраняет их в текстовый файл (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"
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
27.05.2013, 17:04
Ответы с готовыми решениями:

Генератор ключей!
Прошу отпишитесь кто может ! Значит такая вот ситуация, есть программа и есть генератор ключей ....

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

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

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

41
Модератор
Эксперт JS
5198 / 2080 / 406
Регистрация: 06.01.2013
Сообщений: 4,794
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
0 / 0 / 0
Регистрация: 23.12.2009
Сообщений: 44
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
3460 / 1998 / 635
Регистрация: 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
0 / 0 / 0
Регистрация: 23.12.2009
Сообщений: 44
13.01.2015, 05:30 5
ComSpec, Супер, спасибо огромное, вы меня очень выручили.!

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

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

Еще раз огромное спасибо за помощь...!
0
3460 / 1998 / 635
Регистрация: 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
0 / 0 / 0
Регистрация: 23.12.2009
Сообщений: 44
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
251 / 239 / 16
Регистрация: 31.12.2009
Сообщений: 324
13.01.2015, 13:14 8
reguser, а какой версии у вас виндовс? или вы этот объект ("ScriptPW.Password") отдельно ставили?
ато у меня (на ХР sp2) ваш яваскрипт из поста #7 запускаться не хочет
0
0 / 0 / 0
Регистрация: 23.12.2009
Сообщений: 44
13.01.2015, 13:16 9
XP x64 EN Corp - на данный момент...
У меня запускается.
0
251 / 239 / 16
Регистрация: 31.12.2009
Сообщений: 324
13.01.2015, 13:49 10
Цитата Сообщение от reguser Посмотреть сообщение
У меня запускается.
Да, виноват, через cscript.exe у меня тоже отработал, а через wscript.exe не захотел.
А вы HTA-шку с EditBox-ом парольным для вашего скрипта делать не пробовали?
0
0 / 0 / 0
Регистрация: 23.12.2009
Сообщений: 44
13.01.2015, 14:03 11
Нет, а вчем вся прелесть?
0
251 / 239 / 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
0 / 0 / 0
Регистрация: 23.12.2009
Сообщений: 44
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
3460 / 1998 / 635
Регистрация: 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
0 / 0 / 0
Регистрация: 23.12.2009
Сообщений: 44
14.01.2015, 08:19 15
ComSpec, спасибо большое, я учту ваши рекомендации.

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

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

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

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

Добавлено через 3 минуты
0
251 / 239 / 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
0 / 0 / 0
Регистрация: 23.12.2009
Сообщений: 44
14.01.2015, 19:53 17
buggydancer, спасибо большое, но дело в том почему я хочу батник-то, там варианты алгоритма шифрования мастер-ключа к паролю который выводится в блокноте. Так вот, вариантов алгоритма великая куча, потому время от времени хочу менять его прямо в коде, ну например если друг допустим попросит эту утилитку я ему уже с другим алгоритмом дам ее, ну что бы пароли вдруг не совпадали, хотя вероятности мало, но мало ли, конвертирую в ехе-шник и все.
Как то так.

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

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

Bash
1
set/p "sValue1=Введите мастер-ключ пароля: "
0
3460 / 1998 / 635
Регистрация: 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
0 / 0 / 0
Регистрация: 23.12.2009
Сообщений: 44
14.01.2015, 20:39 19
Премного благодарен вам ComSpec
0
3460 / 1998 / 635
Регистрация: 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
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
15.01.2015, 11:23
Помогаю со студенческими работами здесь

Генератор ключей
Здраствуйте! помогите пожалуйста создать генератор ключей,сколько это будет стоить?позже могу...

Генератор ключей
Я хочу создать программу которая будет генерировать ключи для NOD32.Ключи у меня есть, а как...

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

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


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru