2016-11-16 46 views
1

我需要生成一個唯一的IV (Initialization Vector)頭文件。生成一個唯一的IV頭文件

是(今年64位,毫微秒)96位長,包括年(16個比特,0至 65535),該當前時間的IV和一個計數器(16位)以產生96位IV。

如何在CGI bash script中生成此唯一標識符?

回答

1
在y2.sh

#!/bin/bash 
d2b() { 
    printf "%0${2}s\n" $(bc <<< "obase=2;$1")|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 
  • 函數(){...} - 在bash定義自定義功能
  • BC < < <「的obase = 2; $ -1 - 十進制到二進制第一個參數爲sed
  • printf「%0 $ {2} s \ n」| ... | tr - 用前導零填充長度$ 2
  • eval date ... - 將當前時間放入變量
  • 日期-d 「$ firstday 0」 +%S - unixtime在jan1 00:00(秒)

運行:

$ ./y2.sh 
header: 000001111110000000000000011000100101000110110001011001011100011000011100010000010000000000000001 
+0

感謝您的解決方案,爲我工作得很好。你能詳細解釋一下嗎? –