【工作经历:阿里巴巴搜索技术研发中心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就足够了。








  • 使用screen与expect共享shell

    2009-07-02 21:03:26



    上次写完了Linux下共享screen进行协作  后,感觉那样草草总结了,有点不负责任。
    就重新利用screen与expect封装了下,把细节全都封装了。

    使用前提,本机有screen与expect

    用法

    A求救于B,A执行screen_share B。然后会提示一条命令语句,同时会把命令发给B用户。
    B看到命令,并执行后,两个人就在同一个shell下了。


    :<<screen_share_help
    share you screen to others, it use screen to share and communicate, a weak is that it's can't allow more than 4 users
    screen_share huangysh
    screen_share gaoyang huangysh huangyj winniwei
    screen_share_help
    screen_share()
    {
        [[ $# = 0 ]] && echo please input a system user from who you want to communicate && return
        ex sudo chown root:root `which screen`
        ex sudo chmod +s `which screen`
        #ls -l `which screen`
        for u in $*
        do
            for t in  `who |grep $u|awk '{print $2}'`;
            do
                echo `which screen` -rx $USER/$USER |write $u $t ;
            done
        done
        echo Let your friends excute this below
        print `which screen` -rx $USER/$USER

        read -t 5 -p "Any key to enter the screen    "
        export screen_share_users="$*"
        expect -c  '
        set timeout -1
        spawn screen -R $env(USER)
        match_max 100000
        send -- "\r"
        send -- "\r"
        send -- "'$'\cA:''"
        send -- "multiuser on\r"
        send -- "\r"
        send -- "'$'\cA:''"
        send -- "acladd $env(screen_share_users)"
        send -- "\r"
        send -- "\r"
        interact
        '
    }

  • 进程级性能监控方案上

    2009-06-19 18:19:09

    把公司的一款监控系统资源的工具给hack了一下。
    研究了一下c代码。然后自己写了一个小小的客户端。只是接受数据,然后发送到服务端。
    服务端使用rrdtool去绘图。

    然后我又写了一个脚本,封装了ps和top,可以使用ps和top进行系统资源的监控。

    发现在多核服务器的情况下。ps和top的cpu监控指标不一样。后来研究了一下。发现意思不一样。详细内容请参考man帮助。对于代码如何去获取系统的指标这点还不是太清楚。网上没有什么评论。有机会只能去翻top的代码了。
    另外说下pidstat这个工具,它能获取io指标。不知道什么原理。打算下一步去研究下。
    使用pidstat去监控是指标最全的。
    另外,同事提到了nmon,也挂上研究日程。


    使用方法:simon_top 进程关键词 CPU MEM SHR
    参考后面的代码中的注释。

    服务器上的截图。






    代码



  • 编码与解码的基础知识

    2009-05-08 19:35:29

    从今天开始,打算把自己做过的分享全部列出来。
    做过纪念。也好去看自己做了什么有意义的事情。


    本次例会,给同事们分享了一下编码与解码的基础知识。
    提供给不了解的人作为参考,高手飘过。
Open Toolbar