zoukankan      html  css  js  c++  java
  • C#下解析、生成JAVA的RSA密钥、公钥

    1.从 https://www.nuget.org/packages/BouncyCastle/下载对应的nupkg包,放到本地一个文件夹中

    2.打开VS2010,工具—>NuGet程序包管理器设置—>程序包管理器设置

    3.增加程序包源

    4.工具—>管理解决方案的程序包源,找到刚才新增加的程序包源名称,安装对应的程序包源即可

     5.安装之后,已经引入到该解决方案中

    6.代码如下:

     1   public string PrivateKeySignResult(string privateKey, string data)
     2       {
     3           string result = string.Empty;
     4   
     5           var rsa = new RSACryptoServiceProvider();
     6           RsaPrivateCrtKeyParameters privateKeyParam = (RsaPrivateCrtKeyParameters)PrivateKeyFactory.CreateKey(Convert.FromBase64String(privateKey)); 
     7           //RSA 私钥格式转换 
     8           privateKey = string.Format("<RSAKeyValue><Modulus>{0}</Modulus><Exponent>{1}</Expon ent><P>{2}</P><Q>{3}</Q><DP>{4}</DP><DQ>{5}</DQ><InverseQ>{6}</InverseQ><D>{ 7}</D></RSAKeyValue>",
     9           Convert.ToBase64String(privateKeyParam.Modulus.ToByteArrayUnsigned()),
    10           Convert.ToBase64String(privateKeyParam.PublicExponent.ToByteArrayUnsigned()),
    11           Convert.ToBase64String(privateKeyParam.P.ToByteArrayUnsigned()),
    12           Convert.ToBase64String(privateKeyParam.Q.ToByteArrayUnsigned()),
    13           Convert.ToBase64String(privateKeyParam.DP.ToByteArrayUnsigned()),
    14           Convert.ToBase64String(privateKeyParam.DQ.ToByteArrayUnsigned()),
    15           Convert.ToBase64String(privateKeyParam.QInv.ToByteArrayUnsigned()),
    16           Convert.ToBase64String(privateKeyParam.Exponent.ToByteArrayUnsigned()));
    17           //privateKey 为C# .net 格式使用的应用私钥 
    18           rsa.FromXmlString(privateKey);
    19           // data 为参数数据 
    20           byte[] signBytes = rsa.SignData(Encoding.UTF8.GetBytes(data), CryptoConfig.CreateFromName("SHA256")); // 得到 Base64 编码格式签名值,即接口请求参数中的 sign 值 
    21           result = Convert.ToBase64String(signBytes);
    22 
    23           return result;
    24       }
  • 相关阅读:
    数据库中随机返回n条数据的方法
    sql中NULL之恨
    数据库性能的查询优化特刊待续
    sql中exists替换in的区别
    代码的效率问题看一下代码
    检测数据库性能的方法
    Linux随堂1
    设置网页的图标
    C# 线程、timer例句
    转:1.2 Oracle表空间的操作
  • 原文地址:https://www.cnblogs.com/mengzhixingping/p/15320291.html
Copyright © 2011-2022 走看看