千家信息网

C#RSA对接JAVA中RSA方式代码的示例分析

发表于:2026-10-31 作者:千家信息网编辑
千家信息网最后更新 2026年10月31日,这篇文章给大家介绍C#RSA对接JAVA中RSA方式代码的示例分析,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。C#中通过FromXmlString属性加载的是XML形式,而JA
千家信息网最后更新 2026年10月31日C#RSA对接JAVA中RSA方式代码的示例分析

这篇文章给大家介绍C#RSA对接JAVA中RSA方式代码的示例分析,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。

C#中通过FromXmlString属性加载的是XML形式,而JAVA中用到的是解析后的PEM格式的字符串,总之读取证书中信息无非是转换方式问题

///

/// c# 使用 java 的公钥进行rsa加密 utf8编码 通过解析公钥加密数据 /// /// /// public static string RSAEncrypts(string content) { RSACryptoServiceProvider rsa = new RSACryptoServiceProvider(); byte[] cipherbytes; X509Certificate2 x509Certificate2 = new X509Certificate2("D:\\Config\\dsptest.cer"); //创建并返回当前算法对象的xml字符串表示形式 string publicKeyString = x509Certificate2.PublicKey.Key.ToXmlString(false); rsa.FromXmlString(publicKeyString); //rsa.FromXmlString(RSAPublicKeyJava2DotNet(publicKeyString)); cipherbytes = rsa.Encrypt(Encoding.UTF8.GetBytes(content), false); return Convert.ToBase64String(cipherbytes); } /// /// 私钥解密 通过解析私钥来解析数据 X509KeyStorageFlags.Exportable这个属性很关键是获取私钥信息的 /// /// /// /// public static string RSADecrypt( string content) { byte[] rgb = Convert.FromBase64String(content); RSACryptoServiceProvider rsa = new RSACryptoServiceProvider(); byte[] cipherbytes; X509Certificate2 x509Certificate2 = new X509Certificate2("D:\\Config\\test.pfx", "cfca1234", X509KeyStorageFlags.Exportable); //创建并返回当前算法对象的xml字符串表示形式 //rsa.FromXmlString(RSAPrivateKeyJava2DotNet(Const.privatekey)); rsa.FromXmlString(x509Certificate2.PrivateKey.ToXmlString(true)); cipherbytes = rsa.Decrypt(Convert.FromBase64String(content), false); return Encoding.UTF8.GetString(cipherbytes); }

/***************以下是java提供的公私钥转成.net公私钥XML的方式*************************************////

/// RSA公钥格式转换,java->.net/// /// java生成的公钥/// public static string RSAPublicKeyJava2DotNet(string publicKey){RsaKeyParameters publicKeyParam = (RsaKeyParameters)PublicKeyFactory.CreateKey(Convert.FromBase64String(publicKey));return string.Format("{0}{1}",Convert.ToBase64String(publicKeyParam.Modulus.ToByteArrayUnsigned()),Convert.ToBase64String(publicKeyParam.Exponent.ToByteArrayUnsigned()));}/// /// RSA私钥格式转换,java->.net/// /// java生成的RSA私钥/// public static string RSAPrivateKeyJava2DotNet(string privateKey){ RsaPrivateCrtKeyParameters privateKeyParam = (RsaPrivateCrtKeyParameters)PrivateKeyFactory.CreateKey(Convert.FromBase64String(privateKey));return string.Format("{0}{1}

{2}

{3}{4}{5}{6}{7}
",Convert.ToBase64String(privateKeyParam.Modulus.ToByteArrayUnsigned()),Convert.ToBase64String(privateKeyParam.PublicExponent.ToByteArrayUnsigned()),Convert.ToBase64String(privateKeyParam.P.ToByteArrayUnsigned()),Convert.ToBase64String(privateKeyParam.Q.ToByteArrayUnsigned()),Convert.ToBase64String(privateKeyParam.DP.ToByteArrayUnsigned()),Convert.ToBase64String(privateKeyParam.DQ.ToByteArrayUnsigned()),Convert.ToBase64String(privateKeyParam.QInv.ToByteArrayUnsigned()),Convert.ToBase64String(privateKeyParam.Exponent.ToByteArrayUnsigned()));}

关于C#RSA对接JAVA中RSA方式代码的示例分析就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。

方式 公钥 字符 字符串 形式 格式 代码 示例 分析 信息 公私 内容 对象 属性 数据 更多 算法 加密 帮助 生成 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 南京欣网互联网络科技有限公司 互联网最新的科技 科技互联网项目 重庆互联网络科技 合肥互联网科技公司 鑫亿盛互联网科技 新浪科技互联网 互联网科技网站 盛创互联网科技有限公司 成都仁贤领冠互联网科技有限公司 互联网科技项目计划书材料类 怎样加入科技互联网 城市宝互联网科技有限公司 西安有哪些互联网高科技企业 江苏互联网智能科技产品出厂价 艺电能源互联网科技有限公司招聘 北京品多多互联网科技有限公司 互联网领先科技成果宣传视频 互联网的黑科技实验室 高科技和互联网的现代国家 圆梦互联网科技 互联网金融 金融科技 合肥互联网科技公司 易通互联网络科技有限公司 天扬科技互联网广告 承德科技产业互联网发展 晓花互联网科技有限公司网址 互联网公司黑科技创始人 元气玛特互联网科技公司是外包吗 科技互联网公司两年变化
0