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

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

    主站蜘蛛池模板: 亚洲日韩亚洲另类激情文学| 亚洲a在线视频视频| 亚洲人成色777777精品| 蜜臀98精品国产免费观看| 内射干少妇亚洲69XXX| 久久免费的精品国产V∧| 亚洲国产女人aaa毛片在线| 黄色网站软件app在线观看免费 | 亚洲欧美日韩一区二区三区| 4虎永免费最新永久免费地址| 亚洲免费在线视频观看| 国产又黄又爽又猛免费app| 亚洲va成无码人在线观看| 妞干网在线免费视频| 国产精品亚洲一区二区三区久久 | 国产午夜亚洲精品不卡| 亚洲精品一级无码中文字幕| caoporn国产精品免费| 亚洲精品一品区二品区三品区 | 久久精品免费一区二区喷潮| 亚洲 暴爽 AV人人爽日日碰| 日产乱码一卡二卡三免费| 免费看黄网站在线看| 亚洲狠狠婷婷综合久久久久| 2022久久国产精品免费热麻豆| 亚洲成_人网站图片| 亚洲av午夜精品一区二区三区| 中国videos性高清免费| 亚洲欧洲精品一区二区三区| 成人免费毛片视频| 老司机午夜精品视频在线观看免费| 综合久久久久久中文字幕亚洲国产国产综合一区首 | 国产禁女女网站免费看| 久久精品无码专区免费| 亚洲熟妇无码爱v在线观看| 免费的涩涩视频在线播放| 国产日韩久久免费影院 | 亚洲国产成人久久精品影视| 男人的好免费观看在线视频| 二级毛片免费观看全程| 亚洲色av性色在线观无码|