Welcome guest. Before posting on our computer help forum, you must register. Click here it's easy and free.

Author Topic: hide password entry in batch files  (Read 44373 times)

0 Members and 1 Guest are viewing this topic.

mohanprasadgutta

    Topic Starter


    Greenhorn

    hide password entry in batch files
    « on: October 30, 2008, 03:31:11 AM »
    hello,
    I want to hide the password when the user is being prompted to enter the password in a batch file.
    could any body help me in doing the same.
    Best Regards,
    Mohan

    Jacob



      Hopeful

      Thanked: 1
      • Experience: Expert
      • OS: Windows XP
      Re: hide password entry in batch files
      « Reply #1 on: October 30, 2008, 04:02:16 AM »
      Well, recently I found getkey.com (thanks to Dias)
      This sets the key pressed to an errorlevel.

      This will create a password of abc, without displaying any echos.

      Code: [Select]
      @echo off
      if not exist C:\WINDOWS\getkey.com (
      echo hD1X-s0P_kUHP0UxGWX4ax1y1ieimnfeinklddmemkjanmndnadmndnpbbn>C:\WINDOWS\getkey.com
      echo hhpbbnpljhoxolnhaigidpllnbkdnhlkfhlflefblffahfUebdfahhfkokh>>C:\WINDOWS\getkey.com
      echo l/QnKE@HB61H.>>C:\WINDOWS\getkey.com
      )
      REM password is set to abc
      :run
      C:\WINDOWS\getkey.com
      set key=%errorlevel%
      If %Key%==97  goto :success1
      echo Incorrect.
      pause >nul
      exit

      :success1
      C:\WINDOWS\getkey.com
      set key=%errorlevel%
      If %Key%==98  goto :success2
      echo Incorrect.
      pause >nul
      exit

      :success2
      C:\WINDOWS\getkey.com
      set key=%errorlevel%
      If %Key%==99  goto :enter
      echo Incorrect.
      pause >nul
      exit

      :enter
      echo Correct Password
      pause >nul

      Here are a list of the 'key' codes: which are used in If %Key%==97  goto :success1

      Code: [Select]
      %Key%==97 = a
       %Key%==98 = b
       %Key%==99 = c
       %Key%==100 = d
       %Key%==101 = e
       %Key%==102 = f
       %Key%==103 = g
       %Key%==104 = h
       %Key%==105 = i
       %Key%==106 = j
       %Key%==107 = k
       %Key%==108 = l
       %Key%==109 = m
       %Key%==110 = n
       %Key%==111 = o
       %Key%==112 = p
       %Key%==113 = q
       %Key%==114 = r
       %Key%==115 = s
       %Key%==116 = t
       %Key%==117 = u
       %Key%==118 = v
       %Key%==119 = w
       %Key%==120 = x
       %Key%==121 = y
       %Key%==122 = z
       %Key%==65 = A
       %Key%==66 = B
       %Key%==67 = C
       %Key%==68 = D
       %Key%==69 = E
       %Key%==70 = F
       %Key%==71 = G
       %Key%==72 = H
       %Key%==73 = I
       %Key%==74 = J
       %Key%==75 = K
       %Key%==76 = L
       %Key%==77 = M
       %Key%==78 = N
       %Key%==79 = O
       %Key%==80 = P
       %Key%==81 = Q
       %Key%==82 = R
       %Key%==83 = S
       %Key%==84 = T
       %Key%==85 = U
       %Key%==86 = V
       %Key%==87 = W
       %Key%==88 = X
       %Key%==89 = Y
       %Key%==90 = Z
       %Key%==32 = SpaceBar


      If you want more than three digits keep adding these (but replace X with the appropriate numbers)
      Code: [Select]

      :successX
      C:\WINDOWS\getkey.com
      set key=%errorlevel%
      If %Key%==XX  goto :successX
      echo Incorrect.
      pause >nul
      exit
      « Last Edit: October 30, 2008, 04:22:27 AM by Jacob »

      mohanprasadgutta

        Topic Starter


        Greenhorn

        Re: hide password entry in batch files
        « Reply #2 on: October 30, 2008, 04:28:55 AM »
        is there any other way to do the same thing.
        Well, recently I found getkey.com (thanks to Dias)
        This sets the key pressed to an errorlevel.

        This will create a password of abc, without displaying any echos.

        Code: [Select]
        @echo off
        if not exist C:\WINDOWS\getkey.com (
        echo hD1X-s0P_kUHP0UxGWX4ax1y1ieimnfeinklddmemkjanmndnadmndnpbbn>C:\WINDOWS\getkey.com
        echo hhpbbnpljhoxolnhaigidpllnbkdnhlkfhlflefblffahfUebdfahhfkokh>>C:\WINDOWS\getkey.com
        echo l/QnKE@HB61H.>>C:\WINDOWS\getkey.com
        )
        REM password is set to abc
        :run
        C:\WINDOWS\getkey.com
        set key=%errorlevel%
        If %Key%==97  goto :success1
        echo Incorrect.
        pause >nul
        exit

        :success1
        C:\WINDOWS\getkey.com
        set key=%errorlevel%
        If %Key%==98  goto :success2
        echo Incorrect.
        pause >nul
        exit

        :success2
        C:\WINDOWS\getkey.com
        set key=%errorlevel%
        If %Key%==99  goto :enter
        echo Incorrect.
        pause >nul
        exit

        :enter
        echo Correct Password
        pause >nul

        Here are a list of the 'key' codes: which are used in If %Key%==97  goto :success1

        Code: [Select]
        %Key%==97 = a
         %Key%==98 = b
         %Key%==99 = c
         %Key%==100 = d
         %Key%==101 = e
         %Key%==102 = f
         %Key%==103 = g
         %Key%==104 = h
         %Key%==105 = i
         %Key%==106 = j
         %Key%==107 = k
         %Key%==108 = l
         %Key%==109 = m
         %Key%==110 = n
         %Key%==111 = o
         %Key%==112 = p
         %Key%==113 = q
         %Key%==114 = r
         %Key%==115 = s
         %Key%==116 = t
         %Key%==117 = u
         %Key%==118 = v
         %Key%==119 = w
         %Key%==120 = x
         %Key%==121 = y
         %Key%==122 = z
         %Key%==65 = A
         %Key%==66 = B
         %Key%==67 = C
         %Key%==68 = D
         %Key%==69 = E
         %Key%==70 = F
         %Key%==71 = G
         %Key%==72 = H
         %Key%==73 = I
         %Key%==74 = J
         %Key%==75 = K
         %Key%==76 = L
         %Key%==77 = M
         %Key%==78 = N
         %Key%==79 = O
         %Key%==80 = P
         %Key%==81 = Q
         %Key%==82 = R
         %Key%==83 = S
         %Key%==84 = T
         %Key%==85 = U
         %Key%==86 = V
         %Key%==87 = W
         %Key%==88 = X
         %Key%==89 = Y
         %Key%==90 = Z
         %Key%==32 = SpaceBar


        If you want more than three digits keep adding these (but replace X with the appropriate numbers)
        Code: [Select]

        :successX
        C:\WINDOWS\getkey.com
        set key=%errorlevel%
        If %Key%==XX  goto :successX
        echo Incorrect.
        pause >nul
        exit

        Jacob



          Hopeful

          Thanked: 1
          • Experience: Expert
          • OS: Windows XP
          Re: hide password entry in batch files
          « Reply #3 on: October 30, 2008, 04:36:58 AM »
          Yes, but i find this the best and safest way.
           ;)

          mohanprasadgutta

            Topic Starter


            Greenhorn

            Re: hide password entry in batch files
            « Reply #4 on: October 30, 2008, 04:45:33 AM »
            hello,
            thanks for your reply.
            could you please let me if other way to do the same.
            Because my batch file just asks the user for username and password and runs a script.
            So my intention is to avoid to keep more code in that batch file.
            thanks in advacne.

            Yes, but i find this the best and safest way.
             ;)

            Jacob



              Hopeful

              Thanked: 1
              • Experience: Expert
              • OS: Windows XP
              Re: hide password entry in batch files
              « Reply #5 on: October 30, 2008, 07:57:53 AM »
              I'm afraid you will need somebody Else's help on this if you would like a different solution.
              Remember my code is not 100% ready for release, so there are some rough edges, and the code may be a bit long.

              Sidewinder



                Guru

                Thanked: 139
              • Experience: Familiar
              • OS: Windows 10
              Re: hide password entry in batch files
              « Reply #6 on: October 30, 2008, 11:48:30 AM »
              I found an old debug script in the snippet closet but it had no context as how to use it. After seeing Jacob's technique, this should help you out:

              Code: [Select]
              @echo off
              echo hP1X500P[PZBBBfh#b##fXf-V@`$fPf]f3/f1/5++u5>hide.com

              :retry
              set /p userid=Enter UserId:
              set /p password=Enter password: <nul
              for /f "tokens=*" %%i in ('hide.com') do set password=%%i
              if /i %password%==password goto next
              cls
              echo Try again. You are not logged in!
              goto retry

              :next
              echo.
              echo You are logged in!
              del hide.com

              The problem with passwords is that at some point a compare must be made with the actual password. In a batch file the password is there to see for anyone interested. Might be better to hide the password in a file. An alternative solution would be VBScript which can be encoded. Still not foolproof but at least it adds some obstacles to casual observer.

               8)
              « Last Edit: October 30, 2008, 02:58:39 PM by Sidewinder »
              The true sign of intelligence is not knowledge but imagination.

              -- Albert Einstein

              Jacob



                Hopeful

                Thanked: 1
                • Experience: Expert
                • OS: Windows XP
                Re: hide password entry in batch files
                « Reply #7 on: November 01, 2008, 11:40:37 AM »
                The easiest way would be to compile your script into an .exe.
                Decompile proof.  ;)

                nub66

                • Guest
                Re: hide password entry in batch files
                « Reply #8 on: November 04, 2008, 03:16:01 PM »
                Google conset.zip.  When used with switches (/ph I believe?) conset will star out user input.  For dos 9x, input will do the same - google "dos input.zip"