how do you make a letter password generator in batch?

06
2014-04
  • mendez

    I'm having a hard time figuring out how to make a password generator with random letters in it. For example, ASWED-ASDWAD-EFEST. So far I can only make random numbers by using the code

    @echo off
    
    :password
    
    echo %random%-%random%-%random
    pause
    goto password
    

    PS: my OS is windows vista.

    all help will be appreciated.

  • Answers
  • Sathya

    There is a discussion here that you could adapt for your purposes.

    @Echo Off
    Setlocal EnableDelayedExpansion
    Set _RNDLength=8
    Set _Alphanumeric=ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789
    Set _Str=%_Alphanumeric%987654321
    :_LenLoop
    IF NOT "%_Str:~18%"=="" SET _Str=%_Str:~9%& SET /A _Len+=9& GOTO :_LenLoop
    SET _tmp=%_Str:~9,1%
    SET /A _Len=_Len+_tmp
    Set _count=0
    SET _RndAlphaNum=
    :_loop
    Set /a _count+=1
    SET _RND=%Random%
    Set /A _RND=_RND%%%_Len%
    SET _RndAlphaNum=!_RndAlphaNum!!_Alphanumeric:~%_RND%,1!
    If !_count! lss %_RNDLength% goto _loop
    Echo Random string is !_RndAlphaNum!
    

    TheOutcaste expains the above:

    I've modified it so you can easily specify the length, and add or remove characters without having to change any other part of the code.

    For example, you might not want to use both 0 and O (zero and Uppercase O), or 1 and l (one and lowercase L).

    You can use punctuation except for these characters:

    ! % ^ & < >
    

    You can use ^ and %, but must enter them in the _Alphanumeric variable twice as ^^ or %%. However, if you want to use the result (_RndAlphaNum) later in the batch file (other than Echoing to the screen), they might require special handling.

    You can even use a space, as long as it's not the last character in the string. If it ends up as the last character in the generated string though, it will not be used, so you would only have 7 characters.

  • Scott Chamberlain

    here is mine. Ameture, but it works

    @Echo OFF
    @echo Would You Like Me To Make You A Password? Type Your Response And Press Enter.
    set /p ans=
    if %ans%==yes (goto yes
    )
    if %ans%==no (goto exit
    )
    
    :exit
    cls
    @echo Are You Sure?
    set /p ans=
    if %ans%==yes (goto exit
    )
    if %ans% NEQ yes (goto yes
    )
    :yes
    cls 
    @echo Loading...
    
    @echo OFF
    ping localhost -n 4 > Nul
    goto hardpart
    
    
    
    
    
    :hardpart
    @echo OFF
    cls
    @echo Get a peice of paper so you will remember
    pause
    cls
    @echo OFF
    set /A r=%RANDOM% %% 25 + 1
    cls
    if %r%==1 goto 1
    if %r%==2 goto 2
    if %r%==3 goto 3
    if %r%==4 goto 4
    if %r%==5 goto 5
    if %r%==6 goto 6
    if %r%==7 goto 7
    if %r%==8 goto 8
    if %r%==9 goto 9
    if %r%==10 goto 10
    if %r%==11 goto 11
    if %r%==12 goto 12
    if %r%==13 goto 13
    if %r%==14 goto 14
    if %r%==15 goto 15
    if %r%==16 goto 16
    if %r%==17 goto 17
    if %r%==18 goto 18
    if %r%==19 goto 19
    if %r%==20 goto 20
    if %r%==21 goto 21
    if %r%==22 goto 22
    if %r%==23 goto 23
    if %r%==24 goto 24
    if %r%==25 goto 25
    if %r%==26 goto 26
    :1 
    @echo 1st letter is a
    goto number2
    pause
    goto number2
    :2
    @echo 1st letter is b
    pause
    goto number2
    :3
    @echo 1st letter is c
    pause
    goto number2
    :4
    @echo 1st letter is d
    pause
    goto number2
    :5
    @echo 1st letter is e
    pause
    goto number2
    :6
    @echo 1st letter is f
    pause
    goto number2
    :7
    @echo 1st letter is g
    pause
    goto number2
    :8
    @echo 1st letter is h
    pause
    goto number2
    :9
    @echo 1st letter is i
    pause
    goto number2
    :10
    @echo 1st letter is j
    pause
    goto number2
    :11
    @echo 1st letter is k
    pause
    goto number2
    :12
    @echo 1st letter is l
    pause
    goto number2
    :13
    @echo 1st letter is m
    pause
    goto number2
    :14
    @echo 1st letter is n
    pause
    goto number2
    :15
    @echo 1st letter is o
    pause
    goto number2
    :16
    @echo 1st letter is p
    pause
    goto number2
    :17
    @echo 1st letter is q
    pause
    goto number2
    :18
    @echo 1st letter is r
    pause
    goto number2
    :19
    @echo 1st letter is s
    pause
    goto number2
    :20
    @echo 1st letter is t
    pause
    goto number2
    :21
    @echo 1st letter is u
    pause
    goto number2
    :22
    @echo 1st letter is v
    pause
    goto number2
    :23
    @echo 1st letter is w
    pause
    goto number2
    :24
    @echo 1st letter is x
    pause
    goto number2
    :25
    @echo 1st letter is y
    pause
    goto number2
    :26
    @echo 1st letter is z
    pause
    goto number2
    :number2
    @echo OFF
    set /A s=%RANDOM% %% 25 + 1
    cls
    if %s%==1 goto 1a
    if %s%==2 goto 2a
    if %s%==3 goto 3a
    if %s%==4 goto 4a
    if %s%==5 goto 5a
    if %s%==6 goto 6a
    if %s%==7 goto 7a
    if %s%==8 goto 8a
    if %s%==9 goto 9a
    if %s%==10 goto 10a
    if %s%==11 goto 11a
    if %s%==12 goto 12a
    if %s%==13 goto 13a
    if %s%==14 goto 14a
    if %s%==15 goto 15a
    if %s%==16 goto 16a
    if %s%==17 goto 17a
    if %s%==18 goto 18a
    if %s%==19 goto 19a
    if %s%==20 goto 20a
    if %s%==21 goto 21a
    if %s%==22 goto 22a
    if %s%==23 goto 23a
    if %s%==24 goto 24a
    if %s%==25 goto 25a
    if %s%==26 goto 26a
    :1a 
    @echo The next letter is a
    pause
    goto number2
    :2a
    @echo The next letter is b
    pause
    goto number2
    :3a
    @echo The next letter is c
    pause
    goto number2
    :4a
    @echo The next letter is d
    pause
    goto number2
    :5a
    @echo The next letter is e
    pause
    goto number2
    :6a
    @echo The next letter is f
    pause
    goto number2
    :7a
    @echo The next letter is g
    pause
    goto number2
    :8a
    @echo The next letter is h
    pause
    goto number2
    :9a
    @echo The next letter is i
    pause
    goto number2
    :10a
    @echo The next letter is j
    pause
    goto number2
    :11a
    @echo The next letter is k
    pause
    goto number2
    :12a
    @echo The next letter is l
    pause
    goto number2
    :13a
    @echo The next letter is m
    pause
    goto number2
    :14a
    @echo The next letter is n
    pause
    goto number2
    :15a
    @echo The next letter is o
    pause
    goto number2
    :16a
    @echo The next letter is p
    pause
    goto number2
    :17a
    @echo The next letter is q
    pause
    goto number2
    :18a
    @echo The next letter is r
    pause
    goto number2
    :19a
    @echo The next letter is s
    pause
    goto number2
    :20a
    @echo The next letter is t
    pause
    goto number2
    :21a
    @echo The next letter is u
    pause
    goto number2
    :22a
    @echo The next letter is v
    pause
    goto number2
    :23a
    @echo The next letter is w
    pause
    goto number2
    :24a
    @echo The next letter is x
    pause
    goto number2
    :25a
    @echo The next letter is y
    pause
    goto number2
    :26a
    @echo The next letter is z
    pause
    goto number2
    
  • Scott Chamberlain
    rem 16 stings pwd
    
    setlocal ENABLEEXTENSIONS ENABLEDELAYEDEXPANSION
    set alfanum=ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789
    
    set pwd=
    FOR /L %%b IN (0, 1, 16) DO (
    SET /A rnd_num=!RANDOM! * 62 / 32768 + 1
    for /F %%c in ('echo %%alfanum:~!rnd_num!^,1%%') do set pwd=!pwd!%%c
    )
    
    echo pwd=%pwd%
    
  • Tog

    I edited pauls one:

    @Echo Off
    color 0a
    set /P lengthnumberuser="What length do you want your password to be?   "
    pause
    cls
    Setlocal EnableDelayedExpansion
    Set _RNDLength=%lengthnumberuser%
    Set _Alphanumeric=ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789
    Set _Str=%_Alphanumeric%987654321
    :_LenLoop
    IF NOT "%_Str:~18%"=="" SET _Str=%_Str:~9%& SET /A _Len+=9& GOTO :_LenLoop
    SET _tmp=%_Str:~9,1%
    SET /A _Len=_Len+_tmp
    Set _count=0
    SET _RndAlphaNum=
    :_loop
    Set /a _count+=1
    SET _RND=%Random%
    Set /A _RND=_RND%%%_Len%
    SET _RndAlphaNum=!_RndAlphaNum!!_Alphanumeric:~%_RND%,1!
    If !_count! lss %_RNDLength% goto _loop
    Echo Password is: is !_RndAlphaNum!
    
    pause
    

  • Related Question

    security - Are there applications for generating human-friendly but secure passwords?
  • Blixt

    I'm using KeePass for storing my passwords for various sites, because you're more vulnerable than you think if you use the same password on multiple sites (especially if it is short enough to be reversed through rainbow tables.)

    What I'm looking for now is a way to create good rememberable/memoable (what's the word?) passwords that I can use for KeePass itself and for other purposes where I don't want the passwords to be stored anywhere but in my head (like my internet bank.)

    Does anyone know of any good generators? They don't necessarily have to be easy to remember mentally; as long as they're generated to be fluently written on the keyboard, they should be easy enough to learn.


  • Related Answers
  • John T

    Don't generate one, make your own memorable one!

    This site will allow you to test it's strength against multiple criteria.

  • jtimberman

    There's lots of generators for this kind of thing, but really there's a couple methods I use to come up with something like this - master passwords.

    Combine several old passwords. You probably have muscle memory from typing them, the hardest part is remembering the order :-).

    Write a perl, shell, ruby, etc one-liner script. Something like:

    perl -e '/Password/ and print;'
    cat /etc/passwd | awk -F: '/root/ {print $2}'
    

    Write a sentence and use the first letter of each word, and any punctuation used. For example, the previous sentence would be "Wasautfloew,aapu." - including the period.

    Finally, remember that a long password of few character classes (ie all lower case) is stronger than a short password with multiple character classes (ie lower case, numbers, special characters). So "asdoihaoeihwoeihfaoihbzoihzsdofihasodfihafz" is stronger than "0mgWtf$!".

  • 8088

    I don't know what platform you're on, but Mac OS X has a tool like this built into the Accounts settings:

    enter image description here

    It can also estimate how strong any password is, and it has lots of Type and Length options.

    As for other platforms, or generic things, a bit of Googling has led me to these:

    And more.

  • RSolberg

    I would think that a human friendly password is more succeptable to a dictionary attack. I'd try to creat as strong and secure a password as you can remember.

  • Jared Updike

    I use Password Maker (or the same thing with lots of the fields hidden for simplicity: Password Maker Lite ). It only runs on JavaScript on your machine so you aren't storing or transmitting anything.

  • nik

    Here is an alternative take -- SuperGenPass.
    Saw it at the Google OS tips blog.

    Try something like, this blog entry: A password generator I can remember

    I would never trust an online system to generate my password though.
    (SuperGenPass mobile for example).

    I liked Johns PasswordMeter reference a lot (+1 to him for that).

  • Stefan Thyberg

    On most linux machines, you can find a small binary called pwgen which generates a whole bunch of easy to remember passwords. Recommended password length is 12 characters.

  • Christian

    Take a random book out of your book shelve. Open the book at a random page and select a random sentence.

    Note the first letter of every word and add them up. That's your new password. Of course the sentence should be long enough to provide you 12+ characters.

    Sentences are easy to remember. You can also additionally add a number at the end or beginning every time to add a further layer of obscurity.

  • Oskar Duveborn

    I always use pass-phrases - the longer the better... Going above 14-16 characters is the first sweet spot to aim for and the character variation can suffer a hit if it means it's longer. This is easily done and remembered with a regular sentence like "Get things done today again!" or "Damn I'm good at this!".

    A bonus is that most computer users can type regular sentences much faster and more accurately which lowers the risk of someone spotting what you're typing.

    Obviously, passwords need to be changed on a regular basis, or they're near useless.

  • sudhang

    Keepassx has a pronounceable password generator built into it.

  • James

    I found a good website with a few interesting options for password generation, strength testers etc.

    It isn't flawed terribly like some of the major websites that people are currently using for password generation and testing.

    http://www.kevtech-apps.com/