Java 如何使用命令行使用salt生成sha512哈希?

Java 如何使用命令行使用salt生成sha512哈希?,java,linux,Java,Linux,我使用下面的Java代码段使用输入和salt生成哈希密码。有没有办法在Linux命令行中实现这一点 public String getPwd(String input, String salt) { MessageDigest md = MessageDigest.getInstance("SHA-512"); md.update(salt.getBytes(StandardCharsets.UTF_8)); byte[] pwd= md.digest(input.get

我使用下面的Java代码段使用输入和salt生成哈希密码。有没有办法在Linux命令行中实现这一点

public String getPwd(String input, String salt) {
    MessageDigest md = MessageDigest.getInstance("SHA-512");
    md.update(salt.getBytes(StandardCharsets.UTF_8));
    byte[] pwd= md.digest(input.getBytes(StandardCharsets.UTF_8));
    System.out.println(Base64.encodeBase64URLSafeString(pwd));
}
您可以使用sha512sum

cat salt.dat myfile.dat | sha512sum-b


似乎二进制输入默认为文本时需要-b,这可能会导致不同的校验和,具体取决于编码。

myfile.dat是否包含我的第一个输入?@Guru如果您希望获得与Java代码相同的结果,除了Base64部分,那么是的。它需要是您在UTF-8中的输入。我没有得到与Java代码相同的结果。是的,我的输入是一个普通字符串。不确定我做错了什么命令行中没有base64编码,它以十六进制字符串的形式提供结果。如果您只是想验证您的代码,请打印@Guru只需尝试cat salt.dat myfile.dat | sha512sum-b | base64即可