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

ASP.NET
DataList绑定到Row[]行集合的问题的方法
充分利用ASP.NET的三种缓存提高站点性能的注意方法
asp.net下文件上传和文件删除的代码
asp.net下日期加减的方法
asp.net动态载入用户控件的方法
asp.net下定制日期输出格式的代码
C#正则用法两例
asp.net图片上传生成缩略图的注意事项
ASP.NET中高质量缩略图的生成代码
DataList 中动态绑定服务器子控件的代码
asp.net下URL网址重写成.html格式、RSS、OPML的知识总结
使用UserControl做网站导航条的思路 分析
ASP.NET中使用AspnetAccessProvider
asp.net下实现URL重写技术的代码
为大家经常为md5加密过的常用admin,admin888,0000密码
利用MS AJAX注册Javascript命名空间并创建类
asp.net(c#)中取得文件物理路径
垃圾代码二三行 ASPX小马
.NET 2.0获取配置文件AppSettings和ConnectionStrings节数据的方法
.NET c# 单体模式(Singleton)

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


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-11-03   浏览: 192 ::
收藏到网摘: 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;