HowTo hide Password in shell Scripting using Bash

HowTo hide Password in shell Scripting using Bash

Hello Again people,

Today our subject is related to bash shell scripting. and when you are doing complex shell scripting sometimes you need to read the password formstdin, but you don’t want to show the password as its being entered, so how could we do such thing.

We will do it in very simple approach using sttywhich is used mostly in changing or printing terminal line settings in human readable format or in stty readable format”sequence of hex values” , so lets jump to the solution explanation 

1. Save original terminal settings in a variable 

2.  Disable echo from terminal line settings

3. When ever you need to enable terminal line echo use the variable we sat in point 1, and when ever you want to disable echo use point 2

Check below example which represent  password validation function.

#!/bin/bash

pass_check(){           #password validation function

stty_orig=`stty -g`
stty -echo

read -p 'Enter your password : ' password
        echo ""

read -p 'Enter your password once again : ' password1
        stty $stty_orig
        echo ""

if [ $password != $password1 ]
  then
        echo ' password doesnt match '
        pass_check
   else
        stty $stty_orig
fi

}

If you misused stty for echo or for any thing else , the terminal stop responding for your input, or you will notice terminal behaving in a weird way. As a solution usereset command any time to reset stty to its defaults.

I hope that was helpful : ) .


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章