最近和A公司合作,对方提供的接口是java的。post数据需要用RSA加密,
签名数据需要base64
调用接口一直返回签名不正确小弟对java一窍不通,请教各位大大需要怎么修改我的C#签名代码。。
         //对数据签名
        public static string HashAndSign(string str_DataToSign, string str_Private_Key)
        {            byte[] DataToSign = Encoding.GetEncoding("UTF-8").GetBytes(str_DataToSign);
            RSACryptoServiceProvider key = new RSACryptoServiceProvider();            byte[] signed = key.SignData(DataToSign,"sha1");
            return Convert.ToBase64String(signed);          
            
        }
对方demo的java调用
String sign = Base64.encodeBase64String(SignatureUtil.sign(parameter, PRIVATE_KEY_DATA,
            SIGN_TYPE));对方demo的java获取签名
    /**
     * 采用提供的算法签名数据
     * 
     * @param text              待签名内容
     * @param privateKeyData    私钥字符串信息
     * @param algorithm         签名算法
     * @return 签名后的字节数组
     */
    public static byte[] sign(String text, String privateKeyData, String algorithm) {
        try {
            Signature sign = Signature.getInstance(algorithm.equals("RSA") ? RSA_SINGATURE
                : algorithm);            sign.initSign(getPrivateKey(privateKeyData, algorithm));            sign.update(text.getBytes());            return sign.sign();        } catch (NoSuchAlgorithmException e) {
            e.printStackTrace();
        } catch (InvalidKeyException e) {
            e.printStackTrace();
        } catch (SignatureException e) {
            e.printStackTrace();
        } catch (Exception e) {
            e.printStackTrace();
        }
        return null;
    }JavaC#RSA算法base64