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 }

C#下解析、生成JAVA的RSA密钥、公钥的更多相关文章

  1. C#和JAVA的RSA密钥、公钥转换

    C#的秘钥跟JAVA的密钥区别   RSA对于程序本身是没有区别的,其格式都是相同的.对于不同的程序来说,存储使用的语法(包装的类)会有所不同. RSA语法和语法标准有很多,大的类型大概分为ASN.1 ...

  2. java编程之:生成rsa密钥

    通过openssl工具生成RSA的公钥和私钥(opnssl工具可在互联网中下载到,也可以点此下载无线接口包,里面包含此工具) 打开openssl文件夹下的bin文件夹,执行openssl.exe文件: ...

  3. RSA密钥——JAVA与C#的区别和联系

    PS:好久没写博了,最近在考虑以后的事情,而且手上杂事也比较多,终于得空来写两篇.   首先感谢:http://www.codeproject.com/Articles/25487/Cryptogra ...

  4. RSA密钥的生成与配置

    openssl下载地址http://dldx.csdn.net/fd.php?i=20313208579480&s=ac2e809e168f7d5b8bf1515d3d6b1aa4,或者官方下 ...

  5. Java与.NET兼容的RSA密钥持久化方法

    默认情况下,.NET生成的RSA密钥对可以用XML或字节流来保存,而JAVA中生成的RSA密钥对只能用字节流来保存.而它们的字节流格式不同,就导致Java中生成的RSA密钥对不能在.NET中使用,而. ...

  6. .NET Core RSA密钥的xml、pkcs1、pkcs8格式转换和JavaScript、Java等语言进行对接

    众所周知在.NET下的RSA类所生成的密钥为Xml格式,而其他语言比如java一般使用pkcs8格式的密钥,JavaScript一般使用pkcs1格式.我们在开发过程中很可能遇到需要与其他语言开发的a ...

  7. Java & PHP RSA 互通密钥、签名、验签、加密、解密

    RSA加密算法是一种非对称加密算法.在公开密钥加密和电子商业中RSA被广泛使用.RSA是1977年由罗纳德·李维斯特(Ron Rivest).阿迪·萨莫尔(Adi Shamir)和伦纳德·阿德曼(Le ...

  8. RSA密钥之C#格式与Java格式转换

    前言 最近由于项目需求,服务端由c#编写,客户端由java编写.通信数据使用RSA非对称加密.但是java和c#生成的密钥格式是不一样的,所以需要转换格式才可以正常使用.网上搜到使用java进行格式转 ...

  9. RSA密钥生成与使用

    RSA密钥生成与使用 openssl生成工具链接:http://pan.baidu.com/s/1c0v3UxE 密码:uv48 1. 打开openssl密钥生成软件打开 openssl 文件夹下的  ...

  10. RSA密钥,JAVA与.NET之间转换

    最近在做银联的一个接口,用到RSA签名,悲剧来了,.net用的RSA密钥格式和JAVA用的不一样 .net为XML格式 <RSAKeyValue><Modulus>53Knuj ...

随机推荐

  1. file的各种转换

    1.将bloburl转换为file格式 let data = { name: "新年致辞.png", status: "success", uid: 16643 ...

  2. python学习:sqlite3 文件型数据库

    摘录:https://www.cnblogs.com/decwang/p/4565572.html SQLite 字段类型 一般数据采用的固定的静态数据类型,而SQLite采用的是动态数据类型,会根据 ...

  3. kali 子域名搜集工具学习记录

    # fierce 主要是对子域名进行扫描和收集信息,并且它还可以测试区域传送漏洞. kali 2022.1 apt-get 安装的fierce并没有 -dns参数,需要手动下载,下载后有个fierce ...

  4. Oracle View的 WITH READ ONLY 參數有什麼用途?

    限制此視圖只能select,不能進行DML(update,delete,insert)操作,可以保護源表的數據不被改動. CREATE VIEW XXXXX_V AS select XXX,XXX1, ...

  5. sublime json格式化

    1. 插件安装 install package-->pretty json 2. 快捷键设置 设置(preference):热键设置 [ {"keys": ["al ...

  6. p标签设置行数,超出部分用省略号隐藏

    p { overflow: hidden; text-overflow: ellipsis; -webkit-line-clamp: 2; word-wrap: break-word; display ...

  7. react中如何正确使用setState(附例子)

    概述 setState中对于某个state多次修改,只执行一次(最后一次),所以可以将修改放在同一次中 import React, {Component} from 'react'; class De ...

  8. Python中用requests处理cookies的3种方法

    在接口测试中,大多数项目的接口是需要登录后进行操作的,经常用到requests库进行模拟登录及登录后的操作,下面是我不断踩坑后总结出来的关于登录凭证cookies的3种操作方法. 一. 用 reque ...

  9. svn提交注释限制

    找到svn仓库 目录结构长这样 在hooks下的新建一个名字为pre-commit.bat的可执行文件 注意:findstr后边的.通配符表示一个任意字符,findstr "." ...

  10. 三种方式实现RPC调用

    一:RabbitMQ实现RPC调用 客户端: import pika import uuid class FibonacciRpcClient(object): def __init__(self): ...