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

ASP.NET
C# Quoted-Printable编码、解码
asp.net Google的translate工具翻译 API
.NET读取所有目录下文件正则匹配文本电子邮件
asp.net 半角全角转化工具
AjaxControlToolKit 显示浏览者本地语言的方法
asp.net HTML文件上传标签
ASP.NET 绑定DataSet中的多个表
ASP.NET 重定向的几种方法小结
Asp.Net 重定向必须要知道的一些资料
ASP.NET 导出到Excel时保留换行的代码
Asp.Net Cache缓存使用代码
document.getElementsByName和document.getElementById 在IE与FF中不同实现
GridView单元格合并
asp.net 大文件上传控件
asp.net 日期函数 某月的第一天和最后一天的日期
asp.net 时间类 一周的周一和周末的日期
C# javaScript函数的相互调用
asp.net membership 密码重设
"虚拟路径"..."映射到另一个应用程序,这是不允许的!
如何传值在2个页面之间 要求不刷新父页面,并且不能用Querystring传值

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


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