Jump to content
Sign in to follow this  
CarlD

Password generator for the command line

Recommended Posts

I'm a command-line kind of guy, and I write scripts primarily for myself.  Since many websites nowadays require strong passwords, I thought I'd write a simple password generator in AutoIt. I know that AutoIt mavens have written more elaborate pw generators; I offer mine for what it's worth. The compiled script, GenPass.exe, can be downloaded here. See below for Help text and source. Enjoy!

Updates:

2017-05-06: Default password changed to variable length of 13-22 characters; argument "1" no longer supported

                      When compiled as GenPW.exe, password is sent directly to the clipboard, no message box unless password generation fails.

2017-05-05: Correction to bypass password generation if argument is ?|H|h

2017-05-03: Added special argument 1 to generate a password of variable length (10-18 characters) including two (2) separator characters

2017-05-02: Added option /S to set a (persistent) randomization seed

Help:

GenPass.exe|GenPW.exe -- CLD rev. 2017-05-06
Generate a strong password and save it to the Windows clipboard

Note: GenPW.exe has the same functionality as GenPass.exe, but
      sends the generated password directly to the clipboard.
      No message box is displayed (unless password generation fails).
  

"Strong" means that the password contains random combinations of
alphnumeric characters, including at least one uppercase letter
(A-N,P-Z), one lowercase letter (a-k,m-z), and one number (0-9).
(Generated passwords do not use uppercase O or lowercase l as
these characters are easily confused with the numbers 0 and 1.)

The length of the password is up to you (see Usage, below),
but needless to say, the longer, the stronger.

By default, GenPass generates a strong password of between 13
and 22 characters that includes two of the following separator
characters: $%&()*+,-./:;@[]_. Alternatively, you can supply a
command-line argument in which any number n from 1 to 9 stands
for a random sequence of alphanumeric characters of length
n, and any other character stands for itself. Thus, you can
include fixed words and other characters, such as separators,
in the generated password. Spaces in the argument are converted
to underscores. Here are some examples:

Usage             Sample output
-----             -------------
GenPass           MqU26A*6dS-53r8
GenPass 9         frdhPYDs9
GenPass 58        weoXYHKxDI1uQ
GenPass 5.5       UfA6j.43VBB
GenPass 3-4-3     0I0-6gq4-njc
GenPass 5,3.7     I2FSR,tRZ.fjeIsFy
GenPass 3)5(3     UMf)m8513(CBq
GenPass 3[haha]3  yLa[haha]P3y
GenPass Yes way5  Yes_way1BsUh

Seed Option (/S)
----------------
Adding switch /S to the command-line argument causes GenPass to
set a seed for the random generation of password characters. A
bare /S sets a randomized seed which is written to disk in a file
named GenPass.rnd; this seed is used for all subsequent launches
of GenPass with the bare /S option. Alternatively, you can specify
a seed (range -2^31 to 2^31-1) on the command line with /S [seed].
Here are some examples:

GenPass /S
GenPass /S 33.3333
GenPass 5,5,5 /S
GenPass 5,5,5 /S 33.3333

Note that any subsequent launch of GenPass without the /S option
will cause GenPass.rnd to be deleted.

Source:

#Region ;**** Directives created by AutoIt3Wrapper_GUI ****
#AutoIt3Wrapper_Outfile=GenPass.exe
#AutoIt3Wrapper_UseUpx=y
#EndRegion ;**** Directives created by AutoIt3Wrapper_GUI ****

#cs
GENPASS.AU3 -- AutoIt v3
CLD rev.2017-05-05
------------------
Generate a strong password and save it to the clipboard
>> Command GenPass ? for detailed help <<
-------------------------------------------------------
#ce

#include <Clipboard.au3>
#include <FileConstants.au3>
#include <MsgBoxConstants.au3>
#include <StringConstants.au3>
AutoItSetOption("WinTitleMatchMode", -4)
FileInstall ("d:\path\GenPass.htm", @ScriptDir & "\GenPass.htm", $FC_OVERWRITE)

; Template/Seed
Local $sTemp = ""
Local $bSeed = False, $fSeed=False
If $CmdLine[0] Then
    $sTemp = $CmdLineRaw
    If $CmdLine[$CmdLine[0]] = "/s" Then
        $bSeed = True
        $sTemp = StringTrimRight($sTemp, 2)
        $sTemp = StringStripWS($sTemp, $STR_STRIPTRAILING)
    EndIf
    If $CmdLine[$CmdLine[0] - 1] = "/s" Then
        $bSeed = True
        $fSeed = $CmdLine[$CmdLine[0]]
        $sTemp = StringTrimRight($sTemp, 3 + StringLen($fSeed))
        $sTemp = StringStripWS($sTemp, $STR_STRIPTRAILING)
    EndIf
EndIf
If Not $sTemp Then $sTemp = "8"
If $sTemp = "1" Then
    $aSeps = StringSplit("#$%&()*+,-./:;@[]_", "")
    $sTemp = String(Random(3,6,1)) & $aSeps[Random(1,$aSeps[0],1)] & _
        String(Random(2,4,1)) & $aSeps[Random(1,$aSeps[0],1)] & _
        String(Random(3,6,1))
EndIf
$sFn = @ScriptDir&"\GenPass.rnd"
If $bSeed Then
    If Not $fSeed Then
        If Not FileExists($sFn) Then
            $fSeed = Random(-1.999^31,1.999^31,0)
            $h=FileOpen($sFn,2)
            If $h > -1 Then
                FileWrite($h,$fSeed)
                FileClose($h)
            Else
                Exit MsgBox($MB_ICONWARNING, @ScriptName, "Error opening " & $sFn)
            EndIf
        Else
            $h=FileOpen($sFn)
            If $h > -1 Then
                $fSeed=FileRead($h)
                FileClose($h)
            Else
                Exit MsgBox($MB_ICONWARNING, @ScriptName, "Error opening " & $sFn)
            EndIf
        EndIf
    EndIf
    SRandom($fSeed)
Else
    If FileExists($sFn) Then FileDelete($sFn)
EndIf

; Show help
If StringInStr("?Hh", $sTemp) Then
    If WinExists("[REGEXPTITLE:GenPass.exe:.*]") Then
        WinActivate("[REGEXPTITLE:GenPass.exe:.*]")
    Else
        ShellExecute(@ScriptDir & "\GenPass.htm")
    EndIf
    Exit
EndIf

; Main
$sTemp = StringReplace($sTemp, " ", "_")
$iC = 1
While $iC < 10001
    $sPW = GenPW($sTemp)
    If $sPW Then
        ClipPut($sPW)
        If Not StringInStr (@ScriptName, "GenPW") Then _
            MsgBox($MB_ICONINFORMATION, @ScriptName, $sPW & _
            " saved to clipboard" & @CRLF & @CRLF & _
            @ScriptName & " ? shows detailed help")
        Exit
    Else
        $iC += 1
    EndIf
WEnd
Exit MsgBox($MB_ICONWARNING, @ScriptName, "Password generation failed!")
;-------------------------------

Func GenPw($sTemplate)
    Local $aIn = StringSplit($sTemplate,"")
    Local $sOut = ""
    Local $sABC = _
"0123456789ABCDEFGHIJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz0123456789"
    Local $aAB = StringSplit($sABC, "")
    Local $bUC = 0, $bLC = 0, $bNR = 0
    For $i = 1 To $aIn[0]
        If Int($aIn[$i]) Then
            $iK = $aIn[$i]
            For $j = 1 To $iK
                $iR = Random(1, $aAB[0],1)
                Select
                    Case StringInStr("0123456789", $aAB[$iR])
                        $bNR = 1
                    Case StringInStr("ABCDEFGHIJKLMNPQRSTUVWXYZ", _
                            $aAB[$iR], $STR_CASESENSE)
                        $bUC = 1
                    Case StringInStr("abcdefghijklmnpqrstuvwxyz", _
                            $aAB[$iR], $STR_CASESENSE)
                        $bLC = 1
                EndSelect
                $sOut &= $aAB[$iR]
            Next
        Else
            $sOut &= $aIn[$i]
        EndIf
    Next
    If ($bUC And $bLC And $bNR) Then
        Return $sOut
    Else
        Return 0
    EndIf
EndFunc

 

Edited by CarlD
Update

Share this post


Link to post
Share on other sites

Looks pretty neat.  My only criticism is that the password is randomized each time.  It would be nice if there was a "seed" mode that could consistently generate the same password like a hashing function.  I could see both methods being useful (consistent output and random) depending on the use case.  

Without downloading and running the exec, can you share the contents of the GenPass.html file?


Share this post


Link to post
Share on other sites

If you need a very good password management system, you should try KeePass. It contains everything you expect... if you need something extra, you can always look for plugins :)


A cross-platform implementation of the AutoIt language

My contributions to the AutoIt Community ##AutoIt at freenode, real-time chat

3fHNZJ.gif

Spoiler

If I have hurt or offended you in anyway, Please accept my apologies, I never (regardless of the situation) intend to do that to anybody.

Share this post


Link to post
Share on other sites
3 hours ago, spudw2k said:

Without downloading and running the exec, can you share the contents of the GenPass.html file?

Sure, it's the Help text included in my OP.

The idea of a "seed" option is an interesting one. Will look into it. Thanks for your comments.

Share this post


Link to post
Share on other sites

Added a seed option (/S), in response to @spudw2k.  Details are in the updated Help text, in the OP.  :)

Edited by CarlD

Share this post


Link to post
Share on other sites
9 hours ago, TheDcoder said:

If you need a very good password management system, you should try KeePass. It contains everything you expect... if you need something extra, you can always look for plugins :)

Thanks for the tip. I've resisted password managers due to cultural/age reasons. As far as I'm concerned, the natural order of things is a monospace green screen font on a black background, and there is (or should be) no such thing as a password. In other words, my excuse is that I'm old. :D

Share this post


Link to post
Share on other sites
2 hours ago, CarlD said:

In other words, my excuse is that I'm old. :D

That's a good one :D


A cross-platform implementation of the AutoIt language

My contributions to the AutoIt Community ##AutoIt at freenode, real-time chat

3fHNZJ.gif

Spoiler

If I have hurt or offended you in anyway, Please accept my apologies, I never (regardless of the situation) intend to do that to anybody.

Share this post


Link to post
Share on other sites

Update: Special argument 1 generates a strong password of variable length (10-18 characters) that includes two separator characters #$%&()*+,-./:;@[]_ . See the updated Help text in the OP.

 

Edited by CarlD

Share this post


Link to post
Share on other sites

Update: Default password is now variable length 13-22 characters. Also,  when compiled as GenPW.exe, password is sent directly to the clipboard, no message box unless password generation fails.

Edited by CarlD

Share this post


Link to post
Share on other sites

Please, let's create a program like this:

Screen_Short_20170507-031102.jpg

GUI Script:

Global $nMsg, $hGUI = GUICreate("Password Generator", 456, 243, 192, 124)
GUICtrlCreateLabel("Password Include:", 5, 5, 440, 17, 0x0200, 0x00100000)
Global $sLowercase = GUICtrlCreateCheckbox("abcdefghijkmnopqrstuvwxyz", 8, 24, 209, 17, 0x0C00)
Global $sUppercase = GUICtrlCreateCheckbox("ABCDEFGHIJKLMNPQRSTUVWXYZ", 8, 48, 217, 17, 0x0C00)
Global $sNumber = GUICtrlCreateCheckbox("0123456789", 8, 72, 97, 17, 0x0C00)
Global $sSymboy = GUICtrlCreateCheckbox("~!@#$%^*()_+", 8, 96, 97, 17, 0x0C00)
Global $sOther = GUICtrlCreateCheckbox("Custom Char:", 8, 120, 92, 17, 0x0C00)
Global $pOther = GUICtrlCreateInput("", 112, 120, 137, 21)
GUICtrlCreateLabel("Password Leng:", 16, 152, 92, 17, 0x0200, 0x00100000)
Global $pLenFrom = GUICtrlCreateInput("8", 112, 152, 49, 21)
GUICtrlCreateLabel("to", 176, 152, 21, 17, 0x0200, 0x00100000)
Global $pLenTo = GUICtrlCreateInput("8", 200, 152, 49, 21)
GUICtrlCreateLabel("Password file:", 16, 184, 92, 17, 0x0200, 0x00100000)
Global $pSaveFile = GUICtrlCreateInput(@ScriptDir & "\PasswordLib.txt", 112, 184, 257, 21)
Global $iStatus = GUICtrlCreateLabel("TIP: Select your option and select path file to save your password!", 8, 216, 428, 17, 0x0200, 0x00100000)
Global $bGenerator = GUICtrlCreateButton("Generator All && Save", 256, 32, 193, 145)
Global $bSelectPath = GUICtrlCreateButton("...", 376, 184, 59, 25)
GUISetState(@SW_SHOW)
While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
        Case -3
            Exit
    EndSwitch
WEnd

Regards,
 

Share this post


Link to post
Share on other sites
7 hours ago, Trong said:

Please, let's create a program like this:

I've never done GUI scripting, so there would be a learning curve for me. If you'd like to use/improve my code above, feel free. And, of course, there are other GUI options, for example:

 

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

  • Recently Browsing   0 members

    No registered users viewing this page.

  • Similar Content

    • By Stormgrade
      Hello.
      I'm french, sorry for my english.
      I release my project, a password manager : Password Keeper
      First I would like to thanks Guinness and Melba23 for their help, and I'm very sorry for those I forget, please remind me to add you.
      Well my program manage and crypt passwords, first I understand if you don't trust me for this kind of sensible software, but I remember you that all the the source files are at your disposal, fell free to explore them.
      The login is : admin and you can change it later
      How it work ? see Methode de cryptage en BDD.pdf in french
      login

       
      The main interface
      You can obviously add,modify and delete your entry, also you can search with keywords

      A password generator is included

      I won't update it anymore.
      It's a BSD license.
      Autoit version : 3.3.14.5
      Have a good day.
      Methode de cryptage en BDD.pdf Passwordkeeper.7z
    • By Garrik
      Hi guys!
       
      I need some help here, is there a way to use Random with While? 
      I need this script to run in between 1 and 4 times but I dont know how to do it, can you please help me?
       
      dim $i=1
      While $i<=4
      Sleep(3000)
      Send("{LWINDOWN}r{LWINUP}")
      Sleep(3000)
      Send("C:\Users\123\Catalogos\tags.txt{ENTER}")
      Sleep(3000)
      WinActivate("tags: Bloc de notas","")
      Sleep(3000)
      Send("{SHIFTDOWN}{END}{SHIFTUP}{CTRLDOWN}c{CTRLUP}{DEL}{DEL}")
      Sleep(3000)
      Send("{CTRLDOWN}g{CTRLUP}{ALTDOWN}{F4}{ALTUP}")
      Sleep(3000)
      Send("{CTRLDOWN}v{CTRLUP}{SPACE}")
      $i=$i+1
      WEnd
    • By Inpho
      Hi All,
      I intend on keeping custom functions/UDFs (works in progress) here; if anyone wants to use any code, feel free.
      String functions:
      #AutoIt3Wrapper_AU3Check_Parameters=-d -w- 1 -w 2 -w 3 -w 4 -w 5 -w 6 #include-once ; #FUNCTION# ==================================================================================================================== ; Name ..........: _DateTimeGet ; Description ...: Returns the date and time formatted for use in sortable filenames, logs, listviews, etc. ; Syntax ........: _DateTimeGet(iType = 1[, $bHumanFormat = False]) ; Parameters ....: $iType - [optional] an integer value. Default is 1. ; 1 - Date and time in file-friendly format; 20190115_113756 ; 2 - Date in file-friendly format; 20190115 ; 3 - Time in file friendly format; 113756 ; $bHumanFormat - [optional] a boolean value. Default is False. ; True - Includes slashes in the date and colons in the time with a space inbetween ; False - No slashes or colons included with an underscore inbetween ; Return values .: Success - String ; Failure - Sets @error to non-zero and returns an empty string ; Author ........: Sam Coates ; =============================================================================================================================== Func _DateTimeGet($iType = 1, $bHumanFormat = False) If $iType < 1 Or $iType > 3 Then Return (SetError(-1, 0, "")) ;; Param1: ;; 1 = Date and time in file friendly format: 20190115_113756 ;; 2 = Date in file friendly format: 20190115 ;; 3 = Time in file friendly format: 113756 ;; Param2: ;; True = Use human-readable format: 15/01/2019 11:37:56 Local $sTime = @HOUR & ":" & @MIN & ":" & @SEC Local $sDate = @MDAY & "/" & @MON & "/" & @YEAR If $iType = 1 Then If $bHumanFormat = False Then $sTime = StringReplace($sTime, ":", "") $sDate = StringReplace($sDate, "/", "") $sDate = StringTrimLeft($sDate, 4) & StringMid($sDate, 3, 2) & StringLeft($sDate, 2) Return ($sDate & "_" & $sTime) Else Return ($sDate & " " & $sTime) EndIf ElseIf $iType = 2 Then If $bHumanFormat = False Then $sDate = StringReplace($sDate, "/", "") $sDate = StringTrimLeft($sDate, 4) & StringMid($sDate, 3, 2) & StringLeft($sDate, 2) EndIf Return ($sDate) ElseIf $iType = 3 Then If $bHumanFormat = False Then $sTime = StringReplace($sTime, "/", "") EndIf Return ($sTime) EndIf EndFunc ;==>_DateTimeGet ; #FUNCTION# ==================================================================================================================== ; Name ..........: _FileToFileExtension ; Description ...: Returns a file extension from a filename/FQPN (Fully Qualified Path Name) ; Syntax ........: _FileToFileExtension($sPath) ; Parameters ....: $sPath - a string value. ; Return values .: Success - String ; Failure - Empty string as returned from StringTrimLeft() ; Author ........: Sam Coates ; =============================================================================================================================== Func _FileToFileExtension($sPath) Return (StringTrimLeft($sPath, StringInStr($sPath, ".", 0, -1))) EndFunc ;==>_FileToFileExtension ; #FUNCTION# ==================================================================================================================== ; Name ..........: _FileToFileName ; Description ...: Returns a filename from a FQPN (Fully Qualified Path Name) ; Syntax ........: _FileToFileName($sPath[, $bIncludeExtension = True]) ; Parameters ....: $sPath - a string value. ; $bIncludeExtension - [optional] a boolean value. Default is True. ; Return values .: Success - String ; Failure - Empty string as returned from StringLeft() ; Author ........: Sam Coates ; =============================================================================================================================== Func _FileToFileName($sPath, $bIncludeExtension = True) Local $sReturn = StringTrimLeft($sPath, StringInStr($sPath, "\", 0, -1)) If $bIncludeExtension = False Then $sReturn = StringLeft($sReturn, StringInStr($sReturn, ".", 0, -1) - 1) Return ($sReturn) EndFunc ;==>_FileToFileName ; #FUNCTION# ==================================================================================================================== ; Name ..........: _FileToFilePath ; Description ...: Returns a folder path from a FQPN (Fully Qualified Path Name) ; Syntax ........: _FileToFilePath($sPath) ; Parameters ....: $sPath - a string value. ; Return values .: Success - String ; Failure - Empty string as returned from StringLeft() ; Author ........: Sam Coates ; =============================================================================================================================== Func _FileToFilePath($sPath) Return (StringLeft($sPath, StringInStr($sPath, "\", 0, -1) - 1)) EndFunc ;==>_FileToFilePath ; #FUNCTION# ==================================================================================================================== ; Name ..........: _StringLeft ; Description ...: Searches for a string inside a string, then removes everything on the right of that string ; Syntax ........: _StringLeft($sString, $sRemove[, $iCaseSense = 0, $iOccurrence = 1]) ; Parameters ....: $sString - a string value. The string to search inside. ; $sRemove - a string value. The string to search for. ; $iCaseSense - an integer value. Flag to indicate if the operations should be case sensitive. ; $iOccurrence - an integer value. Which occurrence of the substring to find in the string. Use a ; negative occurrence to search from the right side. ; Return values .: Success - String ; Failure - Empty string as returned from StringLeft() ; Author ........: Sam Coates ; =============================================================================================================================== Func _StringLeft($sString, $sRemove, $iCaseSense = 0, $iOccurrence = 1) Return (StringLeft($sString, StringInStr($sString, $sRemove, $iCaseSense, $iOccurrence) - 1)) EndFunc ;==>_StringLeft ; #FUNCTION# ==================================================================================================================== ; Name ..........: _StringRandom ; Description ...: Returns a string of random characters ; Syntax ........: _StringRandom($iAmount[, $iType = 1]) ; Parameters ....: $iAmount - an integer value. Length of returned string ; $iType - [optional] an integer value. Default is 1. ; 1 - Return digits (0-9) ; 2 - Return hexadecimal (0-9, A - F) ; 3 - Return Alphanumeric upper (0-9, A - Z) ; 4 - Return Alphanumeric (0-9, A - Z, a - z) ; 5 - Return Alpha upper (A - Z) ; 6 - Return Alpha (A - Z, a - z) ; Return values .: Success - String ; Failure - Empty string and @error flag as follows: ; @error : 1 - $iAmount is not a positive integer ; 2 - $iType is out of bounds ; Author ........: Sam Coates ; =============================================================================================================================== Func _StringRandom($iAmount, $iType = 1) If $iAmount < 1 Or IsInt($iAmount) = 0 Then Return (SetError(-1, 0, "")) Local $sString = "" Local $iRandomLow = 1, $iRandomHigh = 62 #Tidy_Off Local Static $aCharId[63] = [0, Chr(48), Chr(49), Chr(50), Chr(51), Chr(52), Chr(53), Chr(54), Chr(55), Chr(56), Chr(57), Chr(65), Chr(66), Chr(67), _ Chr(68), Chr(69), Chr(70), Chr(71), Chr(72), Chr(73), Chr(74), Chr(75), Chr(76), Chr(77), Chr(78), Chr(79), Chr(80), _ Chr(81), Chr(82), Chr(83), Chr(84), Chr(85), Chr(86), Chr(87), Chr(88), Chr(89), Chr(90), Chr(97), Chr(98), Chr(99), _ Chr(100), Chr(101), Chr(102), Chr(103), Chr(104), Chr(105), Chr(106), Chr(107), Chr(108), Chr(109), Chr(110), Chr(111), _ Chr(112), Chr(113), Chr(114), Chr(115), Chr(116), Chr(117), Chr(118), Chr(119), Chr(120), Chr(121), Chr(122)] #Tidy_On If $iType = 1 Then ;; digits: 1 - 10 $iRandomHigh = 10 ElseIf $iType = 2 Then ;; hexadecimal: 1 - 16 $iRandomHigh = 16 ElseIf $iType = 3 Then ;; alnumupper: 1 - 36 $iRandomHigh = 36 ElseIf $iType = 4 Then ;; alnum: 1 - 62 $iRandomHigh = 62 ElseIf $iType = 5 Then ;; alphaupper: 11 - 36 $iRandomLow = 11 $iRandomHigh = 36 ElseIf $iType = 6 Then ;; alpha: 11 = 62 $iRandomLow = 11 $iRandomHigh = 62 Else Return (SetError(-2, 0, "")) EndIf For $i = 1 To $iAmount $sString &= $aCharId[Random($iRandomLow, $iRandomHigh, 1)] ;; append string with corresponding random character from ascii array Next Return ($sString) EndFunc ;==>_StringRandom ; #FUNCTION# ==================================================================================================================== ; Name ..........: _StringTrimLeft ; Description ...: Searches for a string inside a string, then removes everything on the left of that string ; Syntax ........: _StringTrimLeft($sString, $sRemove[, $iCaseSense = 0, $iOccurrence = 1]) ; Parameters ....: $sString - a string value. The string to search inside. ; $sRemove - a string value. The string to search for. ; $iCaseSense - an integer value. Flag to indicate if the operations should be case sensitive. ; $iOccurrence - an integer value. Which occurrence of the substring to find in the string. Use a ; negative occurrence to search from the right side. ; Return values .: Success - String ; Failure - Empty string as returned from StringTrimLeft() ; Author ........: Sam Coates ; =============================================================================================================================== Func _StringTrimLeft($sString, $sRemove, $iCaseSense = 0, $iOccurrence = 1) Return (StringTrimLeft($sString, StringInStr($sString, $sRemove, $iCaseSense, $iOccurrence) + StringLen($sRemove) - 1)) EndFunc ;==>_StringTrimLeft Examples:
      ConsoleWrite(_StringRandom(100, 6) & @CRLF) ConsoleWrite(_StringTrimLeft("C:\Windows\System32\cmd.exe", "C:\Windows\System32\") & @CRLF) ConsoleWrite(_StringLeft("C:\Windows\System32\cmd.exe", "cmd.exe") & @CRLF) ConsoleWrite(_FileToFileName("C:\Windows\System32\cmd.exe") & @CRLF) ConsoleWrite(_FileToFilePath("C:\Windows\System32\cmd.exe") & @CRLF) ConsoleWrite(_FileToFileExtension("C:\Windows\System32\cmd.exe") & @CRLF) ConsoleWrite(_StringRandom(6, 4) & "-" & _StringRandom(4, 4) & "-" & _StringRandom(4, 4) & "-" & _StringRandom(4, 4) & "-" & _StringRandom(6, 4)& @CRLF)  
    • By nacerbaaziz
      hello all, and welcome to this tool
      the NB-Password_generator is a small tool which allow you to create a strong passwords
      with this tool you can create a random passwords using :
      1. capital letters
      2. small letters
      3. numbers
      4. symbols
      be sure that you can check any option that  you want and uncheck what you don't want to use
      this tool allow you to create a password from 6 letters to 150 lettersNB-Password_generator.zip
      at the end please accept my greetings
      am waiting for your commants
    • By Gowrisankar
      Dear members of the forum,
      I need to open excel files that may or may not need a password and finally move the files that needs password to manual queue.
      Is there a fastest way to do this?
       
      PS: I have a huge respect for the rules of this forum. I am not asking assistance to override any security measure. I just need to segregate the files that needs passwords.
×
×
  • Create New...