<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毛片免费软件| 日本一线a视频免费观看| 91在线精品亚洲一区二区| 天天影院成人免费观看| 亚洲AV无码一区二区三区网址 | 一个人看的免费视频www在线高清动漫 | 免费真实播放国产乱子伦| 免费国产a理论片| 久久久久亚洲AV无码观看| 天天操夜夜操免费视频| 三上悠亚电影全集免费 | 久久精品免费网站网| 2020国产精品亚洲综合网 | 色偷偷亚洲女人天堂观看欧| 亚洲 小说区 图片区 都市| 黄页免费在线观看| 亚洲AⅤ男人的天堂在线观看| 国产AV无码专区亚洲AV男同| 好大好硬好爽免费视频| 日韩电影免费在线观看中文字幕| 国内成人精品亚洲日本语音| 久久久国产精品亚洲一区| 自拍偷自拍亚洲精品被多人伦好爽 | 免费观看AV片在线播放| 一区二区三区在线免费| 亚洲欧好州第一的日产suv| 亚洲A∨无码无在线观看| 2022中文字字幕久亚洲| 国产美女做a免费视频软件| 亚洲精品免费在线| 久久午夜无码免费| 国产男女爽爽爽免费视频| 精品久久久久久亚洲中文字幕| 亚洲美女视频一区| 久久精品国产亚洲AV高清热| 亚洲中文字幕无码爆乳AV| 久久99亚洲综合精品首页| 免费人成在线观看播放国产 | 精品亚洲成AV人在线观看| 亚洲人成网站在线播放影院在线| 亚洲视频2020|