我需要一个可以采用以下值的 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
但它们都打印出错误的值。
请给我一些建议或帮助我解决这个问题。
提前致谢。