php hash_hmac跟java算出来的结果不一样

hash_hmac("sha512", $MsgData, base64_encode(SHA512),TRUE)
2024-11-01 05:29:41
推荐回答(1个)
回答1:

问题解激物决代码如下:
public String md5(String txt) {
try{
MessageDigest md = MessageDigest.getInstance("MD5");
md.update(txt.getBytes("GBK")); //问题主要出在这里,Java的字符串是unicode编余谨码,不受源码文件的编码影响;而PHP的编码是和源码文件竖铅基的编码一致,受源码编码影响。
StringBuffer buf=new StringBuffer();
for(byte b:md.digest()){
buf.append(String.format("%02x", b&0xff));
}
return buf.toString();
}catch( Exception e ){
e.printStackTrace();
return null;
}
}