Java method which can provide the same output as Python method for HMAC-SHA256 in Hex

后端 未结 1 1597
既然无缘
既然无缘 2021-02-03 14:58

I am now trying to encode the string using HMAC-SHA256 using Java. The encoded string required to match another set of encoded string generated by Python using hmac.new(my

1条回答
  •  盖世英雄少女心
    2021-02-03 15:53

    Are you sure your key and input are identical and correctly encoded in both java and python?

    HMAC-SHA256 works the same on both platforms.

    Java

    Mac sha256_HMAC = Mac.getInstance("HmacSHA256");
    SecretKeySpec secretKey = new SecretKeySpec("1234".getBytes(), "HmacSHA256");
    sha256_HMAC.init(secretKey);
    byte[] hash = sha256_HMAC.doFinal("test".getBytes());
    String check = Hex.encodeHexString(hash);
    System.out.println(new String(check));
    
    Output
    24c4f0295e1bea74f9a5cb5bc40525c8889d11c78c4255808be00defe666671f
    

    Python

    print hmac.new("1234", "test", hashlib.sha256).hexdigest();
    
    Output
    24c4f0295e1bea74f9a5cb5bc40525c8889d11c78c4255808be00defe666671f
    

    0 讨论(0)
提交回复
热议问题