获取值的SHA-1哈希值并对其进行Base64编码

时间:2013-05-26 11:09:49

标签: java shell unix base64

我需要一个可以采用以下值的shell命令或shellscript

dGhlIHNhbXBsZSBub25jZQ==258EAFA5-E914-47DA-95CA-C5AB0DC85B11

然后生成它的SHA-1哈希值,即

0xb3 0x7a 0x4f 0x2c 0xc0 0x62 0x4f 0x16 0x90 0xf6
   0x46 0x06 0xcf 0x38 0x59 0x45 0xb2 0xbe 0xc4 0xea

并使用Base64对此值进行编码,结果如

s3pPLMBiTxaQ9kYGzzhZRbK+xOo=

我可以使用以下代码

在Java中轻松完成此操作
String key = "dGhlIHNhbXBsZSBub25jZQ==258EAFA5-E914-47DA-95CA-C5AB0DC85B11";

MessageDigest md = MessageDigest.getInstance("SHA-1");

//s3pPLMBiTxaQ9kYGzzhZRbK+xOo=
System.out.println(Base64.encodeBase64String(md.digest(key.getBytes())));

到目前为止,我已经尝试了

echo -n "dGhlIHNhbXBsZSBub25jZQ==258EAFA5-E914-47DA-95CA-C5AB0DC85B11" | openssl sha1 -binary | base64

以防万一

echo -n "dGhlIHNhbXBsZSBub25jZQ==258EAFA5-E914-47DA-95CA-C5AB0DC85B11" | openssl dgst -sha1  | base64

但他们都打印出错误的价值观。

请给我一些建议或帮助我解决这个问题。

提前致谢。

0 个答案:

没有答案