• 全部
  • C#综合技术
  • C#互联网桌面应用
  • AppLauncher
  • WinForm&WPF
  • C#开发新技术
  • 问答

请教:怎么用RSA的公钥传递Rijndael的私钥?(代码见内)

shyworm 2004-03-25 10:49:06
这是发送方A的代码:
RSACryptoServiceProvider rsa = new RSACryptoServiceProvider();
string xmlstr = rsa.ToXmlString(false); //只包含公钥
byte[] buf = Encoding.Unicode.GetBytes(xmlstr);

UdpClient udp = new UdpClient(12000);
udp.Send(buf,buf.Length,"HostNameB",12001);//发送rsa公钥给B

RijndaelManaged rm = new RijndaelManaged();
string srmkey = Encoding.Unicode.GetString(rm.Key);

byte[] kbuf = rsa.Encrypt(rm.Key,true);//加密Rijnrael的key
udp.Send(kbuf,kbuf.Length,"HostNameB",12001);//发送加密的key给B

下面是接收方B的代码:
UdpClient udp = new UdpClient(12001);
IPEndPoint ipe = new IPEndPoint(IPAddress.Any,0);

//接收RSA的含公钥的xml串
byte[] buf = udp.Receive(ref ipe);
string sbuf = Encoding.Unicode.GetString(buf);
RSACryptoServiceProvider rsa = new RSACryptoServiceProvider();
rsa.FromXmlString(sbuf); //重新构造RSA

//接收Rijndael的key
byte[] keyCr = udp.Receive(ref ipe);
byte[] key = rsa.Decrypt(keyCr,true); //这里出错!!!
//捕获的异常说的是:对 OAEP 填充进行解码时出错。
string skey = Encoding.Unicode.GetString(key);

我试过把发送方A的这句代码:
string xmlstr = rsa.ToXmlString(false); //只包含公钥
改成
string xmlstr = rsa.ToXmlString(true); //包含公钥和私钥
之后,接收方B就ok。

但是这样很没有道理呀!怎么能把公钥和私钥都发出去呢?
那样的话加密就没有意义了。

恳请各位大侠指点。
...全文
168 点赞 收藏 4
写回复
4 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
turnmissile 2004-03-26
sign
回复
edobnet 2004-03-26
ha
回复
shyworm 2004-03-26
怎么不许结贴呢?
哈!跟贴的有分哦!!!!!!!
回复
shyworm 2004-03-25
呵呵!我自己已经搞明白了!原来我弄反了。应该是B用公钥加密,A来解密。
纠正如下:

这是发送方A的代码:
RSACryptoServiceProvider rsa = new RSACryptoServiceProvider();
string xmlstr = rsa.ToXmlString(false); //只包含公钥
byte[] buf = Encoding.Unicode.GetBytes(xmlstr);

UdpClient udp = new UdpClient(12000);
udp.Send(buf,buf.Length,"HostNameB",12001);//发送rsa公钥给B

IPEndPoint ipe = new IPEndPoint(IPAddress.Any,0);

byte[] kbuf = udp.Receive(ref ipe);
byte[] key = rsa.Decrypt(kbuf,true);

下面是接收方B的代码:
UdpClient udp = new UdpClient(12001);
IPEndPoint ipe = new IPEndPoint(IPAddress.Any,0);

//接收RSA的含公钥的xml串
byte[] buf = udp.Receive(ref ipe);
string sbuf = Encoding.Unicode.GetString(buf);
RSACryptoServiceProvider rsa = new RSACryptoServiceProvider();
rsa.FromXmlString(sbuf); //重新构造RSA

RijndaelManaged rm = new RijndaelManaged();
byte[] keybuf = rsa.Encrypt(rm.Key,true);
udp.Send(keybuf,keybuf.Length,"acerp4",12000);


全部ok了!
回复
相关推荐
网络安全漏洞API接口安全(https,对称,非堆成,公钥私钥)
一 URL转码问题 什么是URL 转码问题?... 尤其是当传递的url是经过Base64加密或者RSA加密后的,要进行传输时,存在特殊字符时,这里的特殊字符一旦被url处理,就不是原先你加密的结果了。 符号 ...
AES密钥与RSA密钥
AES密钥有什么 支付宝开放平台所有OpenAPI均支持对接口的请求内容和响应内容进行AES加密,部分OpenAPI强制要求AES加密。加密后,在网络上传输的接口报文内容将会由明文内容变为密文内容,可以大大提升接口内容...
Android直播开发之旅(25):使用AES算法加密多媒体文件(+RSA+MD5+Base64)
文章目录1. AES算法1.1 AES加密过程1.1.1 字节代替(SubBytes)1.1.2 行移位(ShiftRows)1.1.3 列混合(MixColumns)1.1.4 加轮密钥(AddRoundKey)1.2 AES加解密实现1.2.1... RSA算法2.1 RSA算法原理2.2 RSA加解密实现2.2....
Web技术(三):TLS 1.2/1.3 加密原理(AES-GCM + ECDHE-ECDSA/RSA)
认证加密的共享密钥交换是个难题,Diffie和Hellman两人发明了一套密钥协商方案(Diffie–Hellman key exchange)解决了该问题,为确认通信对端的真实性又产生了数字签名算法,为解决数字签名中无法确认公钥真实性的...
AES和RSA:加密解密
由于公司内部使用,且数据量大,可以用私钥。于是就AES。 AES 1.概念 AES又叫Rijndael算法,是DES升级的加密标准,运行要求低,不需计算机有非常高的处理能力和大的内存; 操作可以很容易的抵御时间和空间的攻击,...
数据传输加密:非对称加密算法RSA+对称算法AES(适用于java,android和Web)
据传输加密  在开发应用过程中,客户端与服务端经常需要进行数据传输,涉及到重要隐私信息时...在这里我主要向大家介绍一下我在开发过程中使用到的加密算法,RSA加密算法+AES加密算法。简单地介绍一下这两种算法吧。
java RSA加密生成license,CPU序列号生成机器码
RSA,可以私钥加密公钥解密,也可以公钥机密私钥解密,速度慢 注意: RSA加密明文最大长度117字节,解密要求密文最大长度为128字节,所以在加密和解密的过程中需要分块进行。 RSA加密对明文的长度是有限...
利用SHA-1算法和RSA秘钥进行签名验签(带注释)
从小白到清晰熟悉SHA-1加密摘要,RSA加密信息的全过程
[Node.js] 对称加密、公钥加密和RSA
对于加解密,我一直处于一种知其然不知其所以然的状态,项目核心部分并不倚重加解密算法时,可以勉强对付过去,一旦需要频繁应用诸如AES/RSA等算法,这种状态就颇令人捉急了。 是时候了解一下原理了,所以找来了这...
客户端与服务器交互使用AES+RSA混合加密原理详解
最近维护公司APP应用的登录模块,由于测试人员Fiddler抓包工具抓取到了公司关于登录时候的明文登录信息。虽然使用的是HTTPS的方式进行http请求的,但还是被Fiddler抓到了明文内容。因此,需要对之前未加密的登录...
支付宝的公钥私钥算法openssl及扩展阅读
为网络通信提供安全及数据完整性的一种安全协议,囊括了主要的密码算法、常用的密钥和证书封装管理功能以及SSL协议,并提供了丰富的应用程序供测试或其它目的使用。 OpenSSL包含一个命令行工具用来完成OpenSSL库中...
对称加密协议DES、3DES aes 和非对称加密协议(不用分发私钥 RSA
对称加密协议DES、3DES aes DES、3DES、...和非对称加密协议(不用分发私钥 RSA) 原创地址:http://www.cnblogs.com/jfzhu/p/4020928.html 转载请注明出处   (一)对称加密(Sym
加密算法:PBEncrypt(hash消息摘要:MD5、SHA;对称加密:DES、AES;非对称加密:RSA
上一篇:一文搞懂 Base64 , 简单! 文章目录MD5 算法# 特点# MD5 用途# 安全性# 简单 JAVA 示例# 为 MD5 添加 salt 示例SHA 算法# JAVA 示例概念:对称加密算法DES 算法# ...扩展置换## S盒压缩处理AES 算法RSA...
使用RSA算法实现对数据的加解密
在我们现实当中经常会存在需要对某些数据进行加密保护 然后进行解密的操作,比方,我们需要对某些XML配置信息里面的某些数据进行加密,以防止任何人打开该XML...1.首先介绍下什么是RSA算法,让大家对RSA算法有个简要的理解.
Android AES,RSA方式数据加密解密代码记录
class Base64Encoder extends FilterOutputStream { private static final char[] chars = { 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q',
RSA加密解密
因为项目需要,最近做一个RSA加密解密的接口,使用Go进行开发,接口使用jsonrpc,go 对RSA加密解密有很好的支持,不过由于受限于底层单片机,所以上层应用需要做一些稍微的调整。 一、概要 RSA是一种非对称加密...
数据传输加密——非对称加密算法RSA+对称算法AES(适用于java,android和Web)
数据传输加密  在开发应用过程中,客户端与服务端经常需要进行数据传输,涉及到重要隐私信息时...在这里我主要向大家介绍一下我在开发过程中使用到的加密算法,RSA加密算法+AES加密算法。简单地介绍一下这两种算法吧
app与后台的token、sessionId、RSA加密登录认证与安全解决方案
一、 登录机制粗略地分析, 登录机制主要分为登录验证、登录保持、登出三个部分。... 登录认保持是指客户端登录后, 服务器能够分辨出已登录的客户端,并为其持续提供登录权限的服务器。登出是指客户端主动退出登录状态...
Java各种加密方式集锦(AES,DES,RSA,DSA,MD5,SHA)
一. 什么是加密加密,是以某种特殊的算法改变原有的信息数据,使得未授权的用户即使获得了已加密的信息,但因不知解密的方法,仍然无法了解信息的内容。在网络数据传输过程中会经常用到报文加密,通常是对报文体body...
【支付宝小程序】PHP 获取用户敏感信息手机号 验签解密 RSA解密 AES解密
需求 支付宝小程序端,获取到加密的用户手机号数据,需要经过服务端对数据进行解密,得到用户的手机号 ...1.分析官方的java实例代码 String response = "小程序前端提交的"; //1. 获取验签和...
Android 数据加密之RSA + AES
数据传输加密   在开发应用过程中,客户端与服务端经常需要进行数据传输,涉及到重要隐私信息时,...在这里我主要向大家介绍一下我在开发过程中使用到的加密算法,RSA加密算法+AES加密算法。简单地介绍一下这两种...
AES-RSA概要总结
AES的什么模式(ECB,CBC,CTR,CFB,OFB) AES填充方式(NoPadding,PKCS5Padding,PKCS7Padding) AES初始向量(iv【CBC模式】) 1. AES加密 一种对称加密,要了解三个概念:密钥、填充、模式 1.1 AES密钥 aes...
密码学不好学?那你可以看看这篇肝了7天的图解密码学
Author : Email : vip_13031075266@163.com Date : 2021.1.17 Copyright: 未经同意不得转载!!! Version : Reference:《图解密码技术》 目录 一、 密码学家的工具箱 二、 对称密码系统 ...2.2....
AES与RSA相结合数据加密方案
Rijndael算法作为新一代的高级加密标准,运行时不需要计算机有非常高的处理能力和大的 存,操作可以很容易的抵御时间和空间的攻击,在不同的运行环境下始终能保持良好的性能。这使AES将安全,高效,性能,方便,...
SeesionId ,Token以及公私钥,服务端与客户端自己的交互
一、登录机制 粗略地分析, 登录机制主要分为登录验证、登录保持、登出三个部分。... 登录认保持是指客户端登录后, 服务器能够分辨出已登录的客户端,并为其持续提供登录权限的服务器。登出是指客户端主动退出登录...
RSA和AES 组合
1、RSA和AES的区别: 总结于:http://www.360doc.com/content/16/0606/15/12385684_565529546.shtml# RSA: 是公开密钥系统的代表; 安全性:建立在具有大素数因子的合数,其因子分解困难这一法则之上; 处理...
开放接口的安全验证方案(AES+RSA)
文章在阐述AES/RSA加密算法的基础上,分别给出了利用AES/RSA实现客户端/服务器端网络数据传输的加密流程。最后在比较AES算法和RSA算法基础上,将AES与RSA相结合提出一种新的数据加密方案。基本需求及概念随着...
信息安全等级保护管理办法(公通字[2007]43号)
信息安全等级保护管理办法(公通字[2007]43号)
PPT模板下载
PPT模板下载我只是想要点积分啊 
vue-devtools chrome 插件
chrome(谷歌浏览器)vue代码调试插件, 已打包。解压后,通过chrome扩展程序加载即可使用。 使用方法: 1、chrome浏览器输入地址“chrome://extensions/”进入扩展程序页面 2、勾选开发者模式 3、点击“加载已解压的扩展程序...”按钮,选择解压后的chrome文件夹,即可添加成功。 4、添加完vue-devtools扩展程序之后,我们在调试vue应用的时候,ch rome开发者工具中会看一个vue的一栏,点击之后就可以看见当前页面vue对象的一些信息
发帖
C#
创建于2007-09-28

10.5w+

社区成员

.NET技术 C#
申请成为版主
帖子事件
创建了帖子
2004-03-25 10:49
社区公告

让您成为最强悍的C#开发者