<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 網絡營銷技巧

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

    主站蜘蛛池模板: 日本免费人成在线网站| 性xxxx视频免费播放直播| 久久久久国色AV免费观看性色| 亚洲国产精品久久66| 男人的天堂网免费网站| 久久精品亚洲中文字幕无码麻豆| 99久久综合精品免费| 亚洲人成在线中文字幕| 97人伦色伦成人免费视频| 在线观看国产一区亚洲bd| 国产精品色午夜视频免费看| 男女作爱免费网站| 亚洲热线99精品视频| 免费一区二区三区| 亚洲午夜久久久久久尤物| 免费无码又爽又刺激毛片| 日本中文字幕免费看| 国产亚洲婷婷香蕉久久精品 | va亚洲va日韩不卡在线观看| ww在线观视频免费观看w| 亚洲欧洲精品无码AV| 91大神免费观看| 亚洲成a∨人片在无码2023| 亚洲Aⅴ无码一区二区二三区软件 亚洲AⅤ视频一区二区三区 | 亚洲精品视频久久| 日本xxwwxxww在线视频免费| 一级日本高清视频免费观看| 亚洲国产精品久久| 日本一线a视频免费观看| 国内精品久久久久影院免费| 亚洲av无码一区二区三区天堂古代| 国产自产拍精品视频免费看| 国产免费一级高清淫曰本片| 亚洲伊人久久精品| 亚洲精品麻豆av| 免费h片在线观看网址最新| 男女猛烈无遮掩视频免费软件| 久久精品蜜芽亚洲国产AV| 免费a级毛片大学生免费观看| 久久久久久国产精品免费免费男同 | 久久亚洲精品成人av无码网站|