bash demo1

知识点:

函数和返回值使用

字符串提取,连接

字符转化为16进制

运算操作


#!/bin/bash

echo  start...
function char_to_hex()
{
case $1 in
0)  return 48;;1)  return 49;;2)  return 50;;
3)  return 51;;4)  return 52;;5)  return 53;;
6)  return 54;;7)  return 55;;8)  return 56;;
9)  return 57;;
a)  return 97;; b)  return 98;; c)  return 99;;
d)  return 100;;e)  return 101;;f)  return 102;;
g)  return 103;;h)  return 104;;i)  return 105;;
j)  return 106;;k)  return 107;;l)  return 108;;
m)  return 109;;n)  return 110;;o)  return 111;;
p)  return 112;;q)  return 113;;r)  return 114;;
s)  return 115;;t)  return 116;;u)  return 117;;
v)  return 118;;w)  return 119;;x)  return 120;;
y)  return 121;;z)  return 122;;
A)  return 65;; B)  return 66;;C)  return 67;;
D)  return 68;; E)  return 69;;F)  return 70;;
G)  return 71;; H)  return 72;;I)  return 73;; 
J)  return 74;; K)  return 75;;L)  return 76;;
M)  return 77;; N)  return 78;;O)  return 79;;
P)  return 80;; Q)  return 81;;R)  return 82;;
S)  return 83;; T)  return 84;;U)  return 85;; 
V)  return 86;; W)  return 87;;X)  return 88;;
Y)  return 89;; Z)  return 90;;
esac
}


function token_generation()
{
#part a:xor process
for((i=0;i<4;i++))
do
 tmpa=${uid:11-i:1}
 char_to_hex $tmpa
 tmpa=$?
 #echo $tmpa


 tmpb=${pin:0+i:1}
 char_to_hex $tmpb
 tmpb=$?
 #echo $tmpb


 tmp=$((($tmpa)^($tmpb)))
 #echo $tmp
 #convert to hex format
 hextmp=`printf "%x" $tmp`
 hextmp_len=`expr length $hextmp`
# echo $hextmp_len
 if [ $hextmp_len -eq 1 ]
 then hextmp="0"${hextmp}
 fi


# echo "hextmp=$hextmp"
 token=${hextmp}${token}
 #echo "token=$token"
done


#part b: conver others
for((i=0;i<8;i++))
do
 tmp=${uid:7-i:1}
 char_to_hex $tmp
 tmp=$?


 hextmp=`printf "%x" $tmp`
 token=${hextmp}${token}
done


echo "token:$token"
}


if [ $# -ne 2 ]
then
   echo "the parameter num error,should be 2"
   exit
fi 


token=""
#uid="0123456789ab"
#pin="1234"
uid=$1
pin=$2




uid_len=`expr length $uid`
if [ $uid_len -ne 12 ]
then 
     echo "uid len error, should be 12"
     exit
fi


pin_len=`expr length $pin`
if [ $pin_len -ne 4 ]
then
     echo "pin len error, should be 4"
     exit
fi


token_generation 


while [ 1 -eq 1 ]
do
  ts=`date +%s`
  echo "timestamp:$ts"
  #  curl -X POST -d 'ON=true' http://192.168.1.131:80/fireplace/power?token=$toke&ts=$ts
  sleep 1;
 #  curl -X POST -d 'ON=false' http://192.168.1.131:80/fireplace/power?token=$toke&ts=$ts
 # sleep 1;


done




echo end...
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值