c#网络加密传输
网上已经有很多测试,我就不多说了。先说说我的测试。
1.net framework 都应该合适。
2.RSACryptoServiceProvider类在.net core 下无法调用xml导出方法(windows)。
3.居网上说RSACryptoServiceProvider在Linux上不支持,我还没有测试。
4.按照网上说的使用 RSA.Create();返回的接口只能导出参数结构RSAParameters;xml,blob都不支持。因此我将结构转成byte[]存储文件。网上都没有说明怎么操作的。都是一样的。
再来说我们一般的操作。我也是按照网上来的。当加密解密流程测试通后,就是过程了。这个细节不一样,但是原理一样。
客户端AES加密数据,AES秘钥由客户端自己确定A,然后用RSA公钥加密 AES 的秘钥为B.每次传输的数据 有A+B构成。RSA秘钥由服务端确定,私钥一直保持在服务端,公钥需要给客户端。
这里就不说web了,现成的ssl.
那么安装c/s模型怎么建立呢?我觉得大概是这样。

大概过程:
1.客户端登录(需要安装协议传递数据,主要是一个授权字符串,我demo里面是有2种,一种是写死的字符串,一致是文件,将其采用sha1进行加密)
2.服务端验证客户端传递(主要是根据设置,是否允许写死的字符串验证,是否有文件验证),验证成功就分配一个sessionid给客户端,同时把RSA的公钥发给客户端)
3.客户端保存RSA公钥和sessionid.
4.客户端发送数据给服务端时。按照前面描述,同时要加上上面分配的sessionid.
5.服务端接收数据后,先用RSA解密,解析出AES的秘钥。需要提取sessionid.先检查sessionid是否还有效,当前设计是当天有效。如果有效就继续解析数据主题,无效就返回客户端错误信息。解析主题数据后处理业务,然后再以AES加密,传输。
根据什么的过程,客户端每次登录都需要验证一次,这样服务端可以控制RSA的变换和客户端的授权文件更新。
demo已经上传git,但是不能跑流程,网络部分是伪代码(注释)。没有写网络部分,想测试需要自己添加。demo只体现了设计过程。
c#网络加密传输的更多相关文章
- 用RSA加密实现Web登录密码加密传输
通常我们做一个Web应用程序的时候都需要登录,登录就要输入用户名和登录密码,并且,用户名和登录密码都是明文传输的,这样就有可能在中途被别人拦截,尤其是在网吧等场合. 这里顺带一个小插曲,我以前有家公司 ...
- webservice 采用SSL实现加密传输
本文转自:http://book.51cto.com/art/200906/129770.htm http://yeweiyun868.blog.163.com/blog/static/5637844 ...
- socket编程之obj压缩加密传输
因为需要序列化这个对象以便在网络上传输.所以POJO必需要实现java.io.Serializable接口.使用了 ObjectInputStream和ObjectOutputStream来接收和发送 ...
- [转]webservice 采用SSL实现加密传输
本文转自:http://book.51cto.com/art/200906/129770.htm http://yeweiyun868.blog.163.com/blog/static/5637844 ...
- SSH加密传输
数据传输安全的要满足的要求: (1)消息的发送方能够确定消息只有预期的接收方可以解密(不保证第三方无法获得,但保证第三方无法解密) (2)消息的接收方可以确定消息是由谁发送的(消息的接收方可以确定消息 ...
- 如何为网站启用HTTPS加密传输协议
前言 当今时代对上网的安全性要求比以前更高,chrome和firefox也都大力支持网站使用HTTPS,苹果也从2017年开始在iOS 10系统中强制app使用HTTPS来传输数据,微信小程序也是要求 ...
- HTTPS加密传输过程
HTTPS加密传输过程 HTTPS全称Hyper Text Transfer Protocol over SecureSocket Layer,是以安全为目标的HTTP通道,在HTTP的基础上通过传输 ...
- linux下使用vsftp搭建FTP服务器:匿名登录,账号登录,SSL加密传输
目录 一.关于FTP和VSFTP 二.ftp.sftp.vsftp.vsftpd的区别 三.项目一:搭建一台所有人都可以访问的通用FTP服务器 3.1 项目要求 3.2 项目思路分析 3.3 使用vs ...
- C# 网络加密与解密
数据在网络传输过程中的保密性是网络安全中重点要考虑的问题之一.由于通过网络传递数据是在不安全的信道上进行传输的,因此通信双方要想确保任何可能正在侦听的人无法理解通信的内容,而且希望确保接收方接收的信息 ...
随机推荐
- Shellinabox安装及使用教程
本文转载自: shellinabox:一款使用 AJAX 的基于 Web 的终端模拟器 一.shellinabox简介 通常情况下,我们在访问任何远程服务器时,会使用常见的通信工具如OpenSSH和P ...
- c# copy类中值到另外一个对象中
贴图: 调用:
- change grayscale to pseudo colouring using colormap in Matlab
change grayscale to pseudo colouring using colormap in Matlab In matlab you can view a grayscale ima ...
- mysql性能问题小解 Converting HEAP to MyIsam create_myisa
安定北京被性能测试困扰了N天,实在没想法去解决了,今天又收到上级的命令说安定北京要解决,无奈!把项目组唯一的DBA辞掉了,现在所以数据库的问题都得自己来处理:( 不知道上边人怎么想的.而且更不知道怎安 ...
- linux shell实现守护进程 看门狗 脚本
嵌入式初学者,第一次上传代码.昨天做了一个udhcpd与udhcpc的守护,目前只会用shell模仿编写,还有什么方法可以做守护呢? ? 1 2 3 4 5 6 7 8 9 10 11 12 13 1 ...
- C++ 线程学习
原文:http://blog.csdn.net/wzy_1988/article/details/46562921 线程的概念 C++中的线程的Text Segment和Data Segment都是共 ...
- git操作合集
目录 安装 下载 本地配置 创建用户凭证ssh 忽略文件 基础操作 新建仓库 克隆仓库 获取更新 推送更新 查看历史 版本回退 分支 别名 linux服务器 疑难问题 清除历史大文件 安装 下载 下载 ...
- SSM框架——实现分页和搜索分页
登录|注册 在路上 在路上,要懂得积累:在路上,要学会放下:我在路上!Stay hungry,Stay foolish. 目录视图 摘要视图 订阅 [公告]博客系统优化升级 ...
- git使用教程2-更新github上代码
前面一篇已经实现首次上传代码到github了,迈出了装逼第一步,本篇继续讲如何把本地更新的代码同步更新到github上 一.clone代码 1.把大神的代码clone到本地,或者clone自己gith ...
- 计算机应用基础教程作业flash动画 车辆工程 冯大昕