<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    stone2083

    mykeepass for command line

    命令行下的類似keepass一個東東.

    如何使用
    Command line for Keep Password.
    Usage:
      keepass.sh -l
      keepass.sh -e plain-text
      keepass.sh -d encoded-text
      keepass.sh -s encoded-text name

    -l
    展示保存下所有加密后的密碼信息
    -e
    將明文密碼, 加密, 密文自動保存到剪切板上
    -d
    將密文界面, 解密后的明文自動保存到剪切板上
    -s
    將密文持久化保存到文件中

    代碼實現
    #!/bin/sh

    DATA="$HOME/.password/data"
    declare -a passwords

    function enc()
    {
        #$1: plain text
        echo "$1" | openssl enc -des | base64
    }

    function dec()
    {
        #$1: encoded text
        echo "$1" | base64 -D | openssl enc -des -d
    }

    function sync()
    {
        for ((loop=0;loop<${#passwords[*]};loop++))
        do
            if [ -z "${passwords[$loop]}" ];then
                continue
            fi
            value="$value\n${passwords[$loop]}"
        done
        echo $value > $DATA
    }

    function save()
    {
        #$1 encoded password
        #$2 name
        for ((loop=0; loop<${#passwords[*]}; loop++))
        do
            info=${passwords[$loop]}
            password=$(echo $info | awk '{print $1}')
            name=$(echo $info | awk '{print $2}')
            if [ "$2" == "$name" ];then
                passwords[$loop]="$1 $2"
                return
            fi
        done
        passwords[$loop]="$1 $2"

        sync
    }

    function delete()
    {
        #$1: name
        for ((loop=0; loop<${#passwords[*]}; loop++))
        do
            info=${passwords[$loop]}
            password=$(echo $info | awk '{print $1}')
            name=$(echo $info | awk '{print $2}')
            if [ "$1" == "$name" ];then
                passwords[$loop]=""
            fi
        done

        sync
    }

    function list()
    {
        for ((loop=0;loop<${#passwords[*]};loop++))
        do
            echo ${passwords[$loop]}
        done
    }

    function help()
    {
        echo "Command line for Keep Password.
    Usage:
      keepass.sh -l
      keepass.sh -e plain-text
      keepass.sh -d encoded-text
      keepass.sh -s encoded-text name"
    }

    function init()
    {
        loop=0
        while read line
        do
            if [ -z "$line" ];then
                continue
            fi
            passwords[$loop]=$line
            loop=$(echo $loop+1 | bc)
        done < $DATA
    }

    init
    case "$1" in
        -l)
            list
            ;;
        -e)
            enc "$2" | tr -d '\n' | pbcopy
            ;;
        -d)
            dec "$2" | tr -d '\n' | pbcopy
            ;;
        -s)
            save "$2" "$3"
            ;;
        -r)
            delete "$2"
            ;;
        *)
            help
            ;;
    esac

    備注:
    1. 純shell打造
    2. 目前支持Mac shell, 理論上支持linux系統(唯一的改動, 把pbcopy改成linux下剪切板復制的命令即可)


    posted on 2014-11-06 14:45 stone2083 閱讀(5602) 評論(2)  編輯  收藏 所屬分類: linux

    Feedback

    # re: mykeepass for command line 2014-11-08 18:19 長痘痘

    學習了,不錯的文章  回復  更多評論   

    # re: mykeepass for command line 2014-11-16 23:38 網絡營銷技巧

    感謝分享,學習中  回復  更多評論   

    主站蜘蛛池模板: 人妻无码久久一区二区三区免费| 中文字幕乱码系列免费| 亚洲AV无码一区东京热久久 | 91老湿机福利免费体验| 成年性午夜免费视频网站不卡| 久久久久亚洲av无码专区导航| 久久99精品免费视频| 亚洲一区二区成人| 久久久久久精品免费看SSS| 亚洲最新视频在线观看| 久热中文字幕在线精品免费| 亚洲区精品久久一区二区三区| 亚洲精品成a人在线观看夫| 午夜视频免费成人| 亚洲综合伊人久久大杳蕉| 一个人免费观看日本www视频| 亚洲av无码成人精品区| 亚洲精品123区在线观看| 四虎免费大片aⅴ入口| 美女扒开尿口给男人爽免费视频| 免费人成视频x8x8入口| 中文字幕亚洲男人的天堂网络| 午夜老司机免费视频| 一级做a毛片免费视频| 亚洲精品乱码久久久久66| 国产精品1024永久免费视频| 亚洲人成色在线观看| 亚洲AV无码成人精品区大在线| 色www永久免费网站| 亚洲国产精品成人久久久| 国产女高清在线看免费观看| 亚洲男同gay片| 亚洲国产中文字幕在线观看| 日本免费在线观看| 亚洲欧洲专线一区| 亚洲美女又黄又爽在线观看| 国产精品久久免费| 人妻免费久久久久久久了| 亚洲精品美女在线观看播放| 十八禁无码免费网站| 亚洲av无码专区在线观看下载|