• 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       }
  • 相关阅读:
    Eclipse 插件Maven在使用 add dependency,找不到包,解决办法
    SimpleDateFormat是线程不安全的,切忌切忌!
    JNative 传递参数bug
    oracle存储过程递归调用
    oracle调用DLL
    telnet和Netstat使用
    notepad++搭配dev配置运行C++
    ubuntu第一次安装登陆密码不正确问题
    区分形参和实参
    爬虫2
  • 原文地址:https://www.cnblogs.com/mengzhixingping/p/15320291.html
Copyright © 2020-2023  润新知