用PHP编写的代码,我是Java开发人员,我尝试使用他们已经解释过两个例子,第一个与PHP
和第二个与C#
一个Web服务API(ticketutils)。不幸的是,我无法得到任何一个。我在下面提到了PHP示例。谅解一块使用Zend框架
public function GenerateSignature($Secret,$PathAndQuery)
{
return base64_encode(\Zend_Crypt_Hmac::compute($Secret, 'sha256',
$PathAndQuery, \Zend_Crypt_Hmac::BINARY));
}
任何人都可以请解释我怎样才能实现与Java代码相同?我已经尝试了下面的代码,但它似乎没有产生适当的结果。
public static String generateSignature(String secrete, String pathAndQuery){
String encoded = null;
try {
MessageDigest md = MessageDigest.getInstance("SHA-256");
md.update(secrete.getBytes("UTF-8"));
md.update(pathAndQuery.getBytes("UTF-8"));
byte[] digest = md.digest();
encoded = Base64.getEncoder().encodeToString(digest);
} catch (Exception e) {
e.printStackTrace();
}
return encoded;
}
注:我使用的Java-8,而上面的代码编写。
我想从C#与Java也许更容易.. –
@aaronxxx,您也可以看到C#方法(请参阅链接),并尽可能帮助我。 –