2

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

我试着做更多的研究,看看它是否可能。我看到这是可能的。

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

在 shell 脚本上做这件事的动机:尝试学习它。

例如,我sha1通过将文件存储在这样的变量中来获取文件

store=`sha1 $blah | cut -d  ' ' -f 1`

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

4

1 回答 1

0

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

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

请注意,您必须使用大写十六进制数字,因为bc无法识别 af。

于 2012-07-29T15:32:44.410 回答