3

我需要一个可以采用以下值的 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

但它们都打印出错误的值。

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

提前致谢。

4

0 回答 0