HMAC SHA256计算【生成不同的值】

问题描述 投票:0回答:0

我有一个函数负责使用

HmacSHA256
算法计算哈希值,并为其提供有效负载。此函数生成的最终输出与此处计算的输出不匹配(https://www.javainuse.com/hmac

我的函数如下所示

    public String generateHmacKey (String sftpResponseObj){
        log.warn("SFTP response: (" + sftpResponseObj + ")");
        String encodingType = "HmacSHA256";
        String hash = "";
        try{
            //Get an algorithm 
            Mac sha256Mac = Mac.getInstance(encodingType);
            // Create secret key
            SecretKeySpec secretKeySpec = new SecretKeySpec(this.secretKey.getBytes("UTF-8"), encodingType);
            log.warn("Secret key: (" + secretKeySpec + ")");
            
            //Assign secret key
            sha256Mac.init(secretKeySpec);
            //JSONObject obj = new JSONObject(sftpResponseObj);
            //log.warn("Stringified SFTP response: (" + obj + ")");
            

            // Generate Base64 encoded string
            Base64 base64 = new Base64();
            hash = Base64.encodeBase64String(sha256Mac.doFinal(sftpResponseObj.getBytes("UTF-8")));

            log.warn("Output: (" + hash + ")");

        }catch(NoSuchAlgorithmException e){
            e.printStackTrace();
        }catch(InvalidKeyException e){
            e.printStackTrace();
        }catch(UnsupportedEncodingException e){
            e.printStackTrace();
        }

        return hash;
    }

上述哈希的输出是

59CqKqY8sXfc1L2lauqh6QYDmp83USyGpbpJgrOQBuo=

我传递给函数的密钥是

ZzVhq3sQkjdRsEy

上述函数中的sftpResponseObj如下

{"id":"ffafb7a3-1701-496f-b5b5-390ad5b7f954","success":"1","comment":"\nWarning#: 20965 Msg: WARNING - RR CODE NOT SET UP FOR EXT - SYSTEM HAS CHANGED EXT TO Panel: AP.KU Info: CLIENT ID 6CH4D8    \nAccount 6CH4D8S opened successfully.\nAccount 6CH4D8W opened successfully.\n","client_id":"6CH4D8"}

使用在线工具(https://www.javainuse.com/hmac)验证后,我得到了不同的输出,请看下面的截图

java digital-signature hmac
© www.soinside.com 2019 - 2024. All rights reserved.