Skip to content

Instantly share code, notes, and snippets.

@vivekwebm2020
Forked from albert1205/EncryptAndDecrypt.vbs
Created February 6, 2022 22:39
Show Gist options
  • Select an option

  • Save vivekwebm2020/44d46ae39e7d31bcbf049e29ea71153f to your computer and use it in GitHub Desktop.

Select an option

Save vivekwebm2020/44d46ae39e7d31bcbf049e29ea71153f to your computer and use it in GitHub Desktop.

Revisions

  1. @albert1205 albert1205 revised this gist Dec 19, 2016. 1 changed file with 0 additions and 228 deletions.
    228 changes: 0 additions & 228 deletions back_godulog.sh
    Original file line number Diff line number Diff line change
    @@ -1,228 +0,0 @@
    #!/bin/sh


    ###################################
    #
    #功能:取一年的某一月有多少天
    #输入参数:
    # 1. yy年份
    # 2. mm月份
    #输出:
    # 一个月的天数
    # -1 不成功
    ###################################
    get_days()
    {
    yy_tmp=$1
    mm_tmp=`expr $2 + 0`
    if [ $? -ge 2 ]; then
    return -1
    fi

    case $mm_tmp in
    1|3|5|7|8|10|12) ret_days=31
    ;;
    4|6|9|11) ret_days=30
    ;;
    2) ret_days=28
    ;;
    esac

    if [ $mm_tmp -eq 2 ]; then
    yy_tmp1=`expr $yy_tmp / 4 \* 4`
    if [ $? -ge 2 ]; then
    return -1
    fi

    yy_tmp2=`expr $yy_tmp / 100 \* 100`
    if [ $? -ge 2 ]; then
    return -1
    fi

    yy_tmp3=`expr $yy_tmp / 400 \* 400`
    if [ $? -ge 2 ]; then
    return -1
    fi

    if [ $yy_tmp1 -eq $yy_tmp ]; then
    if [ $yy_tmp2 -eq $yy_tmp ]; then
    if [ $yy_tmp3 -eq $yy_tmp ]; then
    ret_days=29
    fi
    else
    ret_days=29
    fi
    fi
    fi

    return $ret_days
    }



    ###############################################
    #
    #功能:计算一个日期加或减一个天数后得到的新日期
    #输入参数:
    # 1.日期
    # 2.要变化的天数
    #输出:
    # 变化后的日期
    # -1 失败
    # 0 :表示增量为零
    ################################################
    day_calculate()
    {
    date1=$1
    datemodi=$2

    #若日期增量为0,则返回输入日期
    if [ $datemodi -eq 0 ]; then
    ret_date=$date1
    return 0
    fi
    yy=`echo $date1 | cut -b 1-4`
    if [ $? -ne 0 ]; then
    return -1
    fi

    mm=`echo $date1 | cut -b 5-6`
    if [ $? -ne 0 ]; then
    return -1
    fi

    dd=`echo $date1 | cut -b 7-8`
    if [ $? -ne 0 ]; then
    return -1
    fi


    dd1=`expr $dd + $datemodi`
    if [ $? -ge 2 ] ; then
    return -1
    fi

    #小于零和大于零的处理
    if [ $datemodi -lt 0 ] ; then
    while [ 0 -eq 0 ]
    do
    if [ $dd1 -ge 1 ] ; then
    break
    fi
    mm=`expr $mm - 1`
    if [ $? -ge 2 ] ; then
    return -1
    fi

    if [ $mm -le 0 ] ; then
    mm=`expr $mm + 12`
    if [ $? -ge 2 ]; then
    return -1
    fi

    yy=`expr $yy - 1`
    if [ $? -ge 2 ] ; then
    return -1
    fi
    fi
    get_days $yy $mm
    daysofthismon=$?
    if [ $daysofthismon -lt 0 ] ; then
    return -1
    fi
    dd1=`expr $dd1 + $daysofthismon`
    if [ $? -ge 2 ] ; then
    return -1
    fi
    done
    else
    while [ 0 -eq 0 ]
    do
    get_days $yy $mm
    daysofthismon=$?
    if [ $daysofthismon -lt 0 ] ; then
    return -1
    fi

    if [ $dd1 -le $daysofthismon ] ; then
    break
    fi

    dd1=`expr $dd1 - $daysofthismon`
    if [ $? -ge 2 ] ; then
    return -1
    fi
    mm=`expr $mm + 1`
    if [ $mm -gt 12 ] ; then
    mm=`expr $mm - 12`
    yy=`expr $yy + 1`
    fi
    done
    fi

    mm=`expr $mm + 0`
    if [ $? -ge 2 ] ; then
    return -1
    fi

    dd1=`expr $dd1 + 0`
    if [ $? -ge 2 ] ; then
    return -1
    fi

    if [ $mm -le 9 ] ; then
    ret_date=${yy}0${mm}
    else
    ret_date=${yy}${mm}
    fi
    if [ $dd1 -le 9 ] ; then
    ret_date=${ret_date}0${dd1}
    else
    ret_date=${ret_date}${dd1}
    fi
    }

    ########## starting HERE ###################

    Today=`date +%Y%m%d`
    day_calculate ${Today} -15
    NextDay=${ret_date}
    LastDay=$NextDay
    #BAK_GODU_HOME=/home/godu/GODU_CORE/bin
    BAK_GODU_HOME=/home/godu/GODU_LOGBAK
    GODU_HOME=/home/godu/GODU_CORE
    PATH=$PATH:/bin
    export PATH
    #check which day begin
    if [ -f $BAK_GODU_HOME/.bak_godulog_catch ]; then
    #file recorded last zip date found
    LastDay=`cat $BAK_GODU_HOME/.bak_godulog_catch`
    # echo "read date: "$LastDay
    else
    touch $BAK_GODU_HOME/.bak_godulog_catch
    LastDay=20000101
    echo $NextDay > $BAK_GODU_HOME/.bak_godulog_catch
    fi

    for d in `ls $GODU_HOME/godulog|awk '{print $NF}'`
    do
    if [ $d -gt $LastDay ] ; then
    if [ $d -lt $NextDay ] ; then
    LastDay=$d
    echo $LastDay
    #go into date fileholder, list all ne
    for ne in `ls $GODU_HOME/godulog/$d|grep -v tar|awk '{print $NF}'`
    do
    dd=$GODU_HOME/godulog/$d
    #echo $dd
    tar -cPf $dd/$ne.tar $dd/$ne
    gzip $dd/$ne.tar
    rm -r $dd/$ne
    done
    fi
    fi
    done

    echo $LastDay > $BAK_GODU_HOME/.bak_godulog_catch


  2. @albert1205 albert1205 created this gist Dec 19, 2016.
    79 changes: 79 additions & 0 deletions EncryptAndDecrypt.vbs
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,79 @@
    Call EncryptTool
    Call DecryptTool

    '------------------------
    '【 加密字符串 】
    '------------------------
    Private Function Encrypt(Plaintext)

    Const offset = 10
    Const minAsc = 33
    Const maxAsc = 126

    Dim Ciphertext
    Randomize
    Ciphertext = Ciphertext & Chr(Int((maxAsc-minAsc+1)*Rnd+minAsc))
    Ciphertext = Ciphertext & Chr(Int((maxAsc-minAsc+1)*Rnd+minAsc))
    For i=1 To Len(Plaintext)*2
    If i mod 2 = 0 Then
    newAsc = Asc(Mid(Plaintext,i/2,1)) - offset
    If newAsc < minAsc Then
    newAsc = newAsc + maxAsc - minAsc + 1
    End If
    Ciphertext = Ciphertext & Chr(newAsc)
    ' MsgBox Asc(Mid(Plaintext,i/2,1)) & " -> " & newAsc
    Else
    Ciphertext = Ciphertext & Chr(Int((maxAsc-minAsc+1)*Rnd+minAsc))
    ' MsgBox "Rnd:" & Chr(Int((maxAsc-minAsc+1)*Rnd+minAsc))
    End If
    Next
    Ciphertext = Ciphertext & Chr(Int((maxAsc-minAsc+1)*Rnd+minAsc))
    Ciphertext = Ciphertext & Chr(Int((maxAsc-minAsc+1)*Rnd+minAsc))
    Encrypt = Ciphertext

    End Function

    Private Sub EncryptTool()

    Plaintext = InputBox("在下面输入【明文】:","加密工具","")
    Ciphertext = Encrypt(Plaintext)
    InputBox "【明文】:" & Plaintext & vbNewLine & vbNewLine & "【密文】:如下","加密工具",Ciphertext

    End Sub


    '------------------------
    '【 解密字符串 】
    '------------------------
    Private Function Decrypt(Ciphertext)

    Const offset = 10
    Const minAsc = 33
    Const maxAsc = 126

    If Len(Ciphertext) < 5 Then
    Decrypt = ""
    Exit Function
    End If

    Dim Plaintext
    Ciphertext = Mid(Ciphertext,3,Len(Ciphertext)-4)
    For i=2 To Len(Ciphertext) Step 2
    oldAsc = Asc(Mid(Ciphertext,i,1)) + offset
    If oldAsc > maxAsc Then
    oldAsc = oldAsc - maxAsc + minAsc - 1
    End If
    Plaintext = Plaintext & Chr(oldAsc)
    ' MsgBox Asc(Mid(Ciphertext,i,1)) & " -> " & oldAsc
    Next
    Decrypt = Plaintext

    End Function

    Private Sub DecryptTool()

    Ciphertext = InputBox("在下面输入【密文】:","解密工具","")
    Plaintext = Decrypt(Ciphertext)
    InputBox "【密文】:" & Ciphertext & vbNewLine & vbNewLine & "【明文】:如下","解密工具",Plaintext

    End Sub
    228 changes: 228 additions & 0 deletions back_godulog.sh
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,228 @@
    #!/bin/sh


    ###################################
    #
    #功能:取一年的某一月有多少天
    #输入参数:
    # 1. yy年份
    # 2. mm月份
    #输出:
    # 一个月的天数
    # -1 不成功
    ###################################
    get_days()
    {
    yy_tmp=$1
    mm_tmp=`expr $2 + 0`
    if [ $? -ge 2 ]; then
    return -1
    fi

    case $mm_tmp in
    1|3|5|7|8|10|12) ret_days=31
    ;;
    4|6|9|11) ret_days=30
    ;;
    2) ret_days=28
    ;;
    esac

    if [ $mm_tmp -eq 2 ]; then
    yy_tmp1=`expr $yy_tmp / 4 \* 4`
    if [ $? -ge 2 ]; then
    return -1
    fi

    yy_tmp2=`expr $yy_tmp / 100 \* 100`
    if [ $? -ge 2 ]; then
    return -1
    fi

    yy_tmp3=`expr $yy_tmp / 400 \* 400`
    if [ $? -ge 2 ]; then
    return -1
    fi

    if [ $yy_tmp1 -eq $yy_tmp ]; then
    if [ $yy_tmp2 -eq $yy_tmp ]; then
    if [ $yy_tmp3 -eq $yy_tmp ]; then
    ret_days=29
    fi
    else
    ret_days=29
    fi
    fi
    fi

    return $ret_days
    }



    ###############################################
    #
    #功能:计算一个日期加或减一个天数后得到的新日期
    #输入参数:
    # 1.日期
    # 2.要变化的天数
    #输出:
    # 变化后的日期
    # -1 失败
    # 0 :表示增量为零
    ################################################
    day_calculate()
    {
    date1=$1
    datemodi=$2

    #若日期增量为0,则返回输入日期
    if [ $datemodi -eq 0 ]; then
    ret_date=$date1
    return 0
    fi
    yy=`echo $date1 | cut -b 1-4`
    if [ $? -ne 0 ]; then
    return -1
    fi

    mm=`echo $date1 | cut -b 5-6`
    if [ $? -ne 0 ]; then
    return -1
    fi

    dd=`echo $date1 | cut -b 7-8`
    if [ $? -ne 0 ]; then
    return -1
    fi


    dd1=`expr $dd + $datemodi`
    if [ $? -ge 2 ] ; then
    return -1
    fi

    #小于零和大于零的处理
    if [ $datemodi -lt 0 ] ; then
    while [ 0 -eq 0 ]
    do
    if [ $dd1 -ge 1 ] ; then
    break
    fi
    mm=`expr $mm - 1`
    if [ $? -ge 2 ] ; then
    return -1
    fi

    if [ $mm -le 0 ] ; then
    mm=`expr $mm + 12`
    if [ $? -ge 2 ]; then
    return -1
    fi

    yy=`expr $yy - 1`
    if [ $? -ge 2 ] ; then
    return -1
    fi
    fi
    get_days $yy $mm
    daysofthismon=$?
    if [ $daysofthismon -lt 0 ] ; then
    return -1
    fi
    dd1=`expr $dd1 + $daysofthismon`
    if [ $? -ge 2 ] ; then
    return -1
    fi
    done
    else
    while [ 0 -eq 0 ]
    do
    get_days $yy $mm
    daysofthismon=$?
    if [ $daysofthismon -lt 0 ] ; then
    return -1
    fi

    if [ $dd1 -le $daysofthismon ] ; then
    break
    fi

    dd1=`expr $dd1 - $daysofthismon`
    if [ $? -ge 2 ] ; then
    return -1
    fi
    mm=`expr $mm + 1`
    if [ $mm -gt 12 ] ; then
    mm=`expr $mm - 12`
    yy=`expr $yy + 1`
    fi
    done
    fi

    mm=`expr $mm + 0`
    if [ $? -ge 2 ] ; then
    return -1
    fi

    dd1=`expr $dd1 + 0`
    if [ $? -ge 2 ] ; then
    return -1
    fi

    if [ $mm -le 9 ] ; then
    ret_date=${yy}0${mm}
    else
    ret_date=${yy}${mm}
    fi
    if [ $dd1 -le 9 ] ; then
    ret_date=${ret_date}0${dd1}
    else
    ret_date=${ret_date}${dd1}
    fi
    }

    ########## starting HERE ###################

    Today=`date +%Y%m%d`
    day_calculate ${Today} -15
    NextDay=${ret_date}
    LastDay=$NextDay
    #BAK_GODU_HOME=/home/godu/GODU_CORE/bin
    BAK_GODU_HOME=/home/godu/GODU_LOGBAK
    GODU_HOME=/home/godu/GODU_CORE
    PATH=$PATH:/bin
    export PATH
    #check which day begin
    if [ -f $BAK_GODU_HOME/.bak_godulog_catch ]; then
    #file recorded last zip date found
    LastDay=`cat $BAK_GODU_HOME/.bak_godulog_catch`
    # echo "read date: "$LastDay
    else
    touch $BAK_GODU_HOME/.bak_godulog_catch
    LastDay=20000101
    echo $NextDay > $BAK_GODU_HOME/.bak_godulog_catch
    fi

    for d in `ls $GODU_HOME/godulog|awk '{print $NF}'`
    do
    if [ $d -gt $LastDay ] ; then
    if [ $d -lt $NextDay ] ; then
    LastDay=$d
    echo $LastDay
    #go into date fileholder, list all ne
    for ne in `ls $GODU_HOME/godulog/$d|grep -v tar|awk '{print $NF}'`
    do
    dd=$GODU_HOME/godulog/$d
    #echo $dd
    tar -cPf $dd/$ne.tar $dd/$ne
    gzip $dd/$ne.tar
    rm -r $dd/$ne
    done
    fi
    fi
    done

    echo $LastDay > $BAK_GODU_HOME/.bak_godulog_catch