日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > C# >内容正文

C#

ras私钥c#转java_C#RSA对接JAVA中RSA方式代码实例

發布時間:2024/8/1 C# 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 ras私钥c#转java_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()));

}

以上實例大家可以測試下,感謝大家對腳本之家的支持。

總結

以上是生活随笔為你收集整理的ras私钥c#转java_C#RSA对接JAVA中RSA方式代码实例的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。