当前位置: 首页 > 图文教程 > 网络编程 > ASP.NET > .NET中加密和解密的实现方法2

ASP.NET
ASP.NET 多附件上传实现代码
asp.net 类库中使用ConfigurationManager.ConnectionStrings
asp.net AjaxControlToolKit--TabContainer控件的介绍
ASP.NET环境下为网站增加IP过滤功能
asp.net访问Access数据库溢出错误
ASP.NET AJAX 4.0的模版编程(Template Programming)介绍
asp.net StringBuilder的用法 实例代码
asp.net Accee数据库连接不稳定解决方案
ASP.NET2.0 SQL Server数据库连接详解
asp.net Repeater之非常好的数据分页
C# 生转换网页为pdf
浅谈ASP.NET的Postback 实例代码
asp.net Ext grid 显示列表
通过ASP.net实现flash对数据库的访问
如何创建一个AJAXControlToolKit的扩展控件
asp.net 简单验证码验证实现代码
asp.net 在客户端显示服务器端任务处理进度条的探讨
Asp.net treeview实现无限级树实现代码
asp.net INI文件读写类
asp.net下检测SQL注入式攻击代码

ASP.NET 中的 .NET中加密和解密的实现方法2


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-11-03   浏览: 129 ::
收藏到网摘: n/a

使用私有密钥解密该文档,这是唯一可以解密的密钥,并且没有通过网络传递。  不对称算法比对称算法计算的花费多、速度慢。因此我们不希望在线对话中使用不对称算法加密所有信息。相反,我们使用对称算法。下面的例子中我们使用不对称加密来加密对称密钥。接着就使用对称算法加密了。实际上安全接口层(SSL)建立服务器和浏览器之间的安全对话使用的就是这种工作方式。示例是一个TCP程序,分为服务器端和客户端。服务器端的工作流程是:   从客户端接收公共密钥。   使用公共密钥加密未来使用的对称密钥。   将加密了的对称密钥发送给客户端。   给客户端发送使用该对称密钥加密的信息。  代码如下:
namespace com.billdawson.crypto{public class CryptoServer{private const int RSA_KEY_SIZE_BITS = 1024;private const int RSA_KEY_SIZE_BYTES = 252;private const int TDES_KEY_SIZE_BITS = 192;public static void Main(string[] args){int port;string msg;TcpListener listener;TcpClient client;SymmetricAlgorithm symm;RSACryptoServiceProvider rsa;//获取端口try{port = Int32.Parse(args[0]);msg = args[1];}catch{Console.WriteLine(USAGE);return;}//建立监听try{listener = new TcpListener(port);listener.Start();Console.WriteLine("Listening on port {0}...",port);client = listener.AcceptTcpClient();Console.WriteLine("connection....");}catch (Exception e){Console.WriteLine(e.Message);Console.WriteLine(e.StackTrace);return;}try{ rsa = new RSACryptoServiceProvider();rsa.KeySize = RSA_KEY_SIZE_BITS;// 获取客户端公共密钥rsa.ImportParameters(getClientPublicKey(client));symm = new TripleDESCryptoServiceProvider();symm.KeySize = TDES_KEY_SIZE_BITS;