我知道这是一个重复的问题:Link
我试图对其是否有可能进行更多的研究。 我发现这是可能的。
我唯一想知道的是在shell脚本中我需要使用function
convert a string to an integer
。 SHA1是一个160位长的整数。
在shell脚本上执行此操作的动机:尝试学习它。
例如,我通过将文件存储在像
这样的变量中来获取文件的sha1
store=`sha1 $blah | cut -d ' ' -f 1`
它给了我哈希。但是,如果我想将其转换为整数怎么办?
答案 0 :(得分:0)
不可能。对于shell,一切都是字符串。如果保留POSIX,并将shell变量声明为具有整数类型,则整数的宽度通常是底层C库的宽度,即32或64位。具有160位的SHA1哈希值不适合。
但是,有bc
和dc
实用程序,它们允许任意精度算术。
如果您只想将十六进制数字转换为十进制数,请使用:
$ bc << EOF
obase=10
ibase=16
DA19BAC0F234635B6DE9362369DA07A6A4162865
1245133775210903227706347819370390008085985241189
EOF
请注意,您必须使用CAPITAL HEX DIGITS,因为bc
无法识别a-f。