SHA1 - 将字符串转换为整数

时间:2012-07-29 15:25:09

标签: shell type-conversion sha1

我知道这是一个重复的问题:Link

我试图对其是否有可能进行更多的研究。 我发现这是可能的。

我唯一想知道的是在shell脚本中我需要使用function convert a string to an integer。 SHA1是一个160位长的整数。

在shell脚本上执行此操作的动机:尝试学习它。

例如,我通过将文件存储在像

这样的变量中来获取文件的sha1
store=`sha1 $blah | cut -d  ' ' -f 1`

它给了我哈希。但是,如果我想将其转换为整数怎么办?

1 个答案:

答案 0 :(得分:0)

不可能。对于shell,一切都是字符串。如果保留POSIX,并将shell变量声明为具有整数类型,则整数的宽度通常是底层C库的宽度,即32或64位。具有160位的SHA1哈希值不适合。 但是,有bcdc实用程序,它们允许任意精度算术。 如果您只想将十六进制数字转换为十进制数,请使用:

$ bc << EOF
obase=10
ibase=16
DA19BAC0F234635B6DE9362369DA07A6A4162865
1245133775210903227706347819370390008085985241189
EOF

请注意,您必须使用CAPITAL HEX DIGITS,因为bc无法识别a-f。