【发布时间】:2019-02-24 01:59:19
【问题描述】:
我正在尝试编写一个生成 6 位 TOTP 的 bash 代码。我写了以下代码:
##!/bin/bash
T=`date '+%Y%m%d%H%M'`
K="secret"
prefix="(stdin)= "
keyhex=$(echo -n $T | openssl dgst -sha1 -hmac $K | sed -e "s/^$prefix//")
dec=$((echo $(( 16#$keyhex )) ))
key=$((echo $(($dec % 1000000))))
echo $key
有时它会起作用,有时我会收到以下错误:
./auth.sh: line 6: echo 4076818289415231324 : syntax error in expression (error token is "4076818289415231324 ")
./auth.sh: line 7: % 1000000: syntax error: operand expected (error token is "% 1000000")
我做错了什么?
【问题讨论】:
-
如果某些答案对您有帮助,请考虑accepting it。这将为您和回答者带来声誉。也可以通过tour 了解更多它是如何工作的
标签: linux bash hash modulo one-time-password