2017-07-06 2 views
1

秘密の値(パスワード変数、クレジットカード、いくつかのキー/トークン)を入力するようユーザーに促したいと思うその変数の値の最後のN(4文字と言う)を表示する方法があるかどうかを確認してください。マスクされた/パスワード/シークレット変数の値の最後のN文字だけを埋めて表示する

例:クレジットカード番号を入力し :1234567898765432

I入力またはread -s variableを使用するかをユーザー非表示にする元stty -echo/echoのためのラッパーを使用することができ、それが値を隠すが、どのような私が好きなことを示すことですよこの変数の最後のN(例:4)文字、すなわち$ echo $mySecretVariableと言ったら (実際に関数を書かなければならないかどうかはわかりません)、************5432またはトークンキーの値の最後が*******************C5fxすべての文字が*で埋められ、最後のNだけが表示されるようなものです。

答えて

2

すべてが、最後の4つの文字をマスクするために、このbashの機能を使用することができます。

mask() { 
    local r="${1?needs an argument}" 
    if ((${#r} > 4)); then 
     r="${r:0: -4}" 
     echo "${r//?/*}${1: -4}" 
    else 
     echo "$r" 
    fi 
} 

次にとしてそれを使用する:あなたは430Kヒットを得た私はなぜだろ

mask 1234567898765432 
************5432 

mask 123 
123 

mask 123456 
**3456 
+1

、感謝:)私は推測します唯一の方法は関数を介して行うことです。 –

関連する問題