为了自动化,需要保存密码到特定的位置,但是又不想让别人轻易的获得密码。就只能去加密了。
首先的是,加密方法肯定要是可逆的,不然也没有什么用了。
只能用来唬唬新手。
加密原理,获得用户输入的密码,然后在密码最后加上一个当前帐户的名字。同时把所有的英文字母右移一位并变换大小写。把所有的数字都也转变一下,取与9差的绝对值。比如ABZabz1278 就会变成 bcaBCA8712。
这样简单加密出来的东西,看起来也像是密码,起到伪装的作用。
当然我只是进行了一层的加密,你可以变换加密规则,更换加密层次,来达到更强的伪装。
加密方法代码
QA_encrypt ()
{
read -p "please set your password " PW;
ex sudo echo Test your password | grep incorrect && print password is incorrect && return;
#检查是否正确,ex是个自动输入密码的函数,请暂时忽略。 pw=`echo $PW$(whoami)|tr "[a-y]z[A-Y]Z[0-4][5-9]" "[B-Z]A[b-z]a[5-9][0-4]"`;
#加密}
============================
[huangysh@qa16 ~]$
解密反过来就行了。因为加密的密码中有当前帐户的信息,所以,
其他账户的人,通过解密脚本是得不到你的密码的。
当然,研究完代码,就什么都不知道了。破解很容易。
我不是为了安全,而是为了让不同的账户在加载别人的文件的时候,不那么轻易得到密码而已。
QA_decrypt ()
{
[[ -n $pw ]] && epw=`echo $pw|tr "[B-Z]A[b-z]a[5-9][0-4]" "[a-y]z[A-Y]Z[0-4][5-9]"` && PW=${epw%`whoami`}
#解密}
=========================================================
不过经过了一天,回头看的时候,发现这样加密的话,解密的时候,中间过程会出现部分明文密码。我就修改了下。
把密码先加密,然后加上当前帐户的名字,然后再加密。
解密过程相反,这样就ok了。
QA_encrypt ()
{
read -p "please set your password " PW;
ex sudo echo Test your password | grep incorrect && print password is incorrect && return;
pw=`echo $(echo $PW|tr "[a-y]z[A-Y]Z[0-7]89" "[B-Z]A[b-z]a[2-9]10")$(whoami)|tr "[a-y]z[A-Y]Z[0-7]89" "[B-Z]A[b-z]a[2-9]10"`; #
关键的加密过程。两次加密,}
QA_decrypt ()
{
[[ -n $pw ]] && epw=`echo $pw|tr "[B-Z]A[b-z]a[2-9]10" "[a-y]z[A-Y]Z[0-7]89"`;
#第一解密 epw=${epw%`whoami`};
#去掉帐户名字 PW=`echo $epw|tr "[B-Z]A[b-z]a[2-9]10" "[a-y]z[A-Y]Z[0-7]89"`
#再次解密}
alibabaASCQA2008 加密后就是 cnkdcdcCUESC6443IVBOHZTI
这样就差不多了。可以忽悠下新手了。其他团队有人简单实用base64加密。这种方式太脆弱了。一看就知道。而且解密容易,还要保证本机有base64.不够灵活。
使用tr就足够了。