C#使用BouncyCastle实现RSA签名加密,与JAVA互通
问题 调用其他支付公司提供的接口(第三方接口是JAVA编写,也只给提供JAVA的调用示例。),给了一个pfx的公钥,直接尝试用C#的签名加密调不通,C#签名加密方法如下: /// <summary> /// 公钥加密 /// </summary> /// <param name="value">要加密的数据</param> /// <returns></returns> public static string SignEncrypt2(string value) { try { //根据路径和密码,读取公钥文件证书 X509Certificate2 pc = new X509Certificate2("\\test.pfx", Config.PrivateLucPwd); RSACryptoServiceProvider p = (RSACryptoServiceProvider)pc.PublicKey.Key; byte[] enBytes = p.SignData(Encoding.UTF8.GetBytes(value), new SHA1CryptoServiceProvider()); p.Dispose(); return Convert.ToBase64String(enBytes); } catch { } return string.Empty; }