如何通过nodejs签名(pkcs#1v1_5)

I tried to communicate with a company A. A use golang as server. me use nodejs.

Encrypted communication process,use hash256 digest, and rsa-key is 1024 bit.

here is a golang code for verify.

func NewRsaVerifier(publicKeyPem string) (verifier *RsaVerifier, err error) {
    block, _ := pem.Decode([]byte(publicKeyPem))

    if block == nil {
        err = errors.New(PUBLIC_KEY_ERR)
        return
    }
    publicKeyInterface, err1 := x509.ParsePKIXPublicKey(block.Bytes)
    if err1 != nil {
        err = errors.New(PUBLIC_KEY_ERR)
        return
    }
    publicKey, ok := publicKeyInterface.(*rsa.PublicKey)
    if !ok {
        err = errors.New(PUBLIC_KEY_ERR)
        return
    }
    return &RsaVerifier{
        publicKey: publicKey,
    }, nil
}

func (v *RsaVerifier) Verify(msg string, signature string) (err error) {
    signatureBytes, err := base64.StdEncoding.DecodeString(signature)
    if err != nil {
        return
    }

    //VerifyPKCS1v15
    hash := sha256.New()
    io.WriteString(hash, msg)
    hashed := hash.Sum(nil)
    err = rsa.VerifyPKCS1v15(v.publicKey, crypto.SHA256, hashed, signatureBytes)
    return err
}

func (a *BrokerAuth) VerifySignature(pubKey, payload string, signature string) error {
    verifier, err := security.NewRsaVerifier(pubKey)
    if verifier == nil {
        return errors.New("未找到指定代理商的鉴权模块")
    }
    err := verifier.Verify(payload, signature)
    if err != nil {
        logger.Error("验证签名错误: %v", err)
        return errors.New("代理商鉴权失败")
    }
    return nil
}

how to sign a string via nodejs , and return true use this golang code.

i try to use sign('RSA-SHA256'), it is false.

this my code:

const SIGN_TYPE = 'RSA-SHA256';
_hashDigest(data_buff) {
  let hash = crypto.createHash(HASH_TYPE);
  hash.update(data_buff);
  return hash.digest();
}

_sign(data_buff) {
  const sign = crypto.createSign(SIGN_TYPE);
  sign.update(this._hashDigest(data_buff));
  var signPramas = {
    key: this._privateKey,
    passphrase: this._passphrase
  };
  return sign.sign(signPramas);
}