生成唯一的 IV header
Generate a unique IV header
我需要生成唯一的 IV (Initialization Vector)
header。
IV 应 为 96 位长,由年份组成(16 位,0 到
65535),当前时间(64位,今年纳秒),和一个计数器(16位)生成96位IV。
如何在 CGI bash script
中生成这个唯一标识符?
在y2.sh中:
#!/bin/bash
d2b() {
printf "%0s\n" $(bc <<< "obase=2;")|tr ' ' '0'
}
counter=1
eval "$(date +'firstday=%Y-01-01 now=%s nano=%N year=%Y')"
midnight=$(date -d "$firstday 0" +%s)
seconds=$((now - midnight))
header=$(d2b $year 16)$(d2b $seconds$nano 64)$(d2b $counter 16)
echo header: $header
- function() { ... } - 在 bash
中定义自定义函数
- bc <<< "obase=2;$1 - 十进制到二进制的第一个参数与 sed
- printf "%0${2}s\n" | ... | tr - 用前导零填充到长度 $2
- eval date... - 将当前时间放入变量
- date -d "$firstday 0" +%s - 1 月 1 日的 unixtime 00:00(秒)
运行它:
$ ./y2.sh
header: 000001111110000000000000011000100101000110110001011001011100011000011100010000010000000000000001
我需要生成唯一的 IV (Initialization Vector)
header。
IV 应 为 96 位长,由年份组成(16 位,0 到 65535),当前时间(64位,今年纳秒),和一个计数器(16位)生成96位IV。
如何在 CGI bash script
中生成这个唯一标识符?
在y2.sh中:
#!/bin/bash
d2b() {
printf "%0s\n" $(bc <<< "obase=2;")|tr ' ' '0'
}
counter=1
eval "$(date +'firstday=%Y-01-01 now=%s nano=%N year=%Y')"
midnight=$(date -d "$firstday 0" +%s)
seconds=$((now - midnight))
header=$(d2b $year 16)$(d2b $seconds$nano 64)$(d2b $counter 16)
echo header: $header
- function() { ... } - 在 bash 中定义自定义函数
- bc <<< "obase=2;$1 - 十进制到二进制的第一个参数与 sed
- printf "%0${2}s\n" | ... | tr - 用前导零填充到长度 $2
- eval date... - 将当前时间放入变量
- date -d "$firstday 0" +%s - 1 月 1 日的 unixtime 00:00(秒)
运行它:
$ ./y2.sh
header: 000001111110000000000000011000100101000110110001011001011100011000011100010000010000000000000001