number-0 2017-08-20 07:41 采纳率: 0%
浏览 1420
已结题

关于hash_hmac("MD5", "aa=11&bb=2&c=lai")

图片说明

大家好,我是开发java的,最近遇到一个和php相关的问题,想和大家请教一下

hash_hmac(“MD5”, "a=1&b=data&c=2","私钥")

php的这个函数内部是怎么实现的,我目前需要用java做一个签名函数,和php的hash_hmac函数功能一致,网上搜索的都使用不了,所以想知道这个函数底层源码是怎么实现的,这样我就可以用java实现了

搜索到一个阿里的技术文档,内容如下,但是无法使用:
public static byte[] encryptHMAC(String data, String secret) throws Exception {
byte[] bytes = null;
try {
SecretKey secretKey = new SecretKeySpec(secret.getBytes(Constants.ENCODE_UTF8), "HmacMD5");
Mac mac = Mac.getInstance(secretKey.getAlgorithm());
mac.init(secretKey);
bytes = mac.doFinal(data.getBytes(Constants.ENCODE_UTF8));
} catch (Exception gse) {
throw new IOException(gse.toString());
}
return bytes;
}

public static String byte2hex(byte[] bytes) {
    StringBuilder sign = new StringBuilder();
    for (int i = 0; i < bytes.length; i++) {
        String hex = Integer.toHexString(bytes[i] & 0xFF);
        if (hex.length() == 1) {
            sign.append("0");
        }
        sign.append(hex.toUpperCase());
    }

    System.out.println(sign.toString().toLowerCase());
    return sign.toString().toLowerCase();
}
  • 写回答

1条回答 默认 最新

  • number-0 2017-08-20 07:42
    关注

    请各位php的开发者,说一下这个函数的 hash_hmac(“MD5”, "a=1&b=data&c=2","私钥") 底层实现原理

    评论

报告相同问题?

悬赏问题

  • ¥15 HFSS 中的 H 场图与 MATLAB 中绘制的 B1 场 部分对应不上
  • ¥15 如何在scanpy上做差异基因和通路富集?
  • ¥20 关于#硬件工程#的问题,请各位专家解答!
  • ¥15 关于#matlab#的问题:期望的系统闭环传递函数为G(s)=wn^2/s^2+2¢wn+wn^2阻尼系数¢=0.707,使系统具有较小的超调量
  • ¥15 FLUENT如何实现在堆积颗粒的上表面加载高斯热源
  • ¥30 截图中的mathematics程序转换成matlab
  • ¥15 动力学代码报错,维度不匹配
  • ¥15 Power query添加列问题
  • ¥50 Kubernetes&Fission&Eleasticsearch
  • ¥15 報錯:Person is not mapped,如何解決?