中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

C#RSA對接JAVA中RSA方式代碼的示例分析

發布時間:2021-10-13 11:00:08 來源:億速云 閱讀:142 作者:柒染 欄目:編程語言

這篇文章給大家介紹C#RSA對接JAVA中RSA方式代碼的示例分析,內容非常詳細,感興趣的小伙伴們可以參考借鑒,希望對大家能有所幫助。

C#中通過FromXmlString屬性加載的是XML形式,而JAVA中用到的是解析后的PEM格式的字符串,總之讀取證書中信息無非是轉換方式問題

/// <summary>    /// c# 使用 java 的公鑰進行rsa加密 utf8編碼  通過解析公鑰加密數據    /// </summary>    /// <param name="publickey"></param>    /// <returns></returns>    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);      }      /// <summary>      /// 私鑰解密 通過解析私鑰來解析數據 X509KeyStorageFlags.Exportable這個屬性很關鍵是獲取私鑰信息的      /// </summary>      /// <param name="privatekey"></param>      /// <param name="content"></param>      /// <returns></returns>     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的方式*************************************//// <summary> /// RSA公鑰格式轉換,java->.net/// </summary>/// <param name="publicKey">java生成的公鑰</param>/// <returns></returns>public static string RSAPublicKeyJava2DotNet(string publicKey){RsaKeyParameters publicKeyParam = (RsaKeyParameters)PublicKeyFactory.CreateKey(Convert.FromBase64String(publicKey));return string.Format("<RSAKeyValue><Modulus>{0}</Modulus><Exponent>{1}</Exponent></RSAKeyValue>",Convert.ToBase64String(publicKeyParam.Modulus.ToByteArrayUnsigned()),Convert.ToBase64String(publicKeyParam.Exponent.ToByteArrayUnsigned()));}/// <summary>/// RSA私鑰格式轉換,java->.net/// </summary>/// <param name="privateKey">java生成的RSA私鑰</param>/// <returns></returns>public static string RSAPrivateKeyJava2DotNet(string privateKey){ RsaPrivateCrtKeyParameters privateKeyParam = (RsaPrivateCrtKeyParameters)PrivateKeyFactory.CreateKey(Convert.FromBase64String(privateKey));return string.Format("<RSAKeyValue><Modulus>{0}</Modulus><Exponent>{1}</Exponent><P>{2}</P><Q>{3}</Q><DP>{4}</DP><DQ>{5}</DQ><InverseQ>{6}</InverseQ><D>{7}</D></RSAKeyValue>",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方式代碼的示例分析就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

夏津县| 寿宁县| 北票市| 台江县| 长阳| 通化市| 哈尔滨市| 平陆县| 乌兰察布市| 巴中市| 徐州市| 合作市| 灯塔市| 信宜市| 永德县| 中西区| 本溪市| 南阳市| 丰都县| 大埔区| 旬阳县| 卫辉市| 滨州市| 资溪县| 乐平市| 阿巴嘎旗| 明星| 汕头市| 泗水县| 庆安县| 青龙| 凤凰县| 永泰县| 东台市| 墨脱县| 新乡市| 承德市| 独山县| 贵溪市| 竹北市| 沁水县|