2011-10-10 141 views
2

什么是http://php.net/manual/en/function.hash-hmac.php的Java等价物?带密钥的SHA512散列

我需要指定数据和密钥来生成SHA512哈希。

目前为止我找到的最好的是http://commons.apache.org/codec/apidocs/org/apache/commons/codec/digest/DigestUtils.html#sha512Hex(java.lang.String) 但是我如何指定密钥?

+0

可能的重复[如何在Java中使用弹性城堡创建SHA512摘要字符串?](http://stackoverflow.com/questions/2208374/how-can-i-create-an-sha512-digest-string -in-java-using-bouncy-castle) –

+0

我需要指定'key'以及 – siamii

回答

1

我推荐使用Apache Commons Codec,特别是它的DigestUtils

例如是这样的:

public String calcSha(String secret, String data) { 
    return DigestUtils.sha512Hex(secret + data); 
} 
+0

如何指定密钥? – siamii

+0

我更新了答案。 PHP版本可能在做类似的事情。 –

+0

我不明白 - 你把数据作为串联字符串传递给秘密?为什么他们不是两个单独的参数? – IcedDante

1

充气城堡包括HMAC class,其可以使用任何摘要(=散列)可用的,包括SHA-256。