Java 从json字符串创建签名,并在PHP中使用openssl进行签名

Java 从json字符串创建签名,并在PHP中使用openssl进行签名,java,php,openssl,Java,Php,Openssl,我有一个来自Java的代码示例,但在php中无法直接获得它 说明是这样的 使用SHA512从上一步创建有效负载的哈希 使用签名证书私钥对哈希进行签名 在PHP中也有这样做的方法吗 String payload = "JSON_PAYLOAD_GOES_HERE"; byte[] msg_bytes = payload.getBytes("UTF-8"); MessageDigest md = MessageDigest.getInstance(&q

我有一个来自Java的代码示例,但在php中无法直接获得它

说明是这样的

  • 使用SHA512从上一步创建有效负载的哈希
  • 
    
  • 使用签名证书私钥对哈希进行签名
  • 
    
    在PHP中也有这样做的方法吗

    String payload = "JSON_PAYLOAD_GOES_HERE";
    byte[] msg_bytes = payload.getBytes("UTF-8");
    MessageDigest md = MessageDigest.getInstance("SHA-512");
    byte[] hash_value = md.digest(msg_bytes);
    
    KeyPair keyPair = getKeyPair();
    Signature sig = Signature.getInstance("NONEwithRSA");
    sig.initSign(keyPair.getPrivate());
    sig.update(hash_value);
    byte[] signatureBytes = sig.sign();
    String signature = Base64.getEncoder().encodeToString(signatureBytes);