-
-
Save vivekwebm2020/44d46ae39e7d31bcbf049e29ea71153f to your computer and use it in GitHub Desktop.
Encrypt And Decrypt String by VBScript
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| #!/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 | |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| 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 |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment