【工作经历:阿里巴巴搜索技术研发中心QA ,百度新产品测试部QA】 【领域:测试分析,自动化测试,性能测试,安全测试 】 【个人定位:高级测试工程师+培训师+领域产品专家】

bash加密字符串

上一篇 / 下一篇  2009-07-04 16:04:33 / 个人分类:原创

为了自动化,需要保存密码到特定的位置,但是又不想让别人轻易的获得密码。就只能去加密了。
首先的是,加密方法肯定要是可逆的,不然也没有什么用了。
只能用来唬唬新手。


加密原理,获得用户输入的密码,然后在密码最后加上一个当前帐户的名字。同时把所有的英文字母右移一位并变换大小写。把所有的数字都也转变一下,取与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就足够了。









TAG:

 

评分:0

我来说两句

Open Toolbar