当前位置: 首页 > 图文教程 > 网络编程 > ASP.NET > 使用C#编写DES加密程序的framework

ASP.NET
Asp.net利用JQuery弹出层加载数据代码
asp.net dataview做无限极分类的又一用法
asp.net ckeditor编辑器的使用方法
告别ADO.NET实现应用系统无缝切换的烦恼(总结篇)
asp.net 实现动态显示当前时间(不用javascript不考虑开销)
.net动态显示当前时间(客户端javascript)
asp.net 结合YUI 3.0小示例
asp.net 取消缓存相关问题说明
asp.net 计划任务管理程序实现,多线程任务加载
ASP.NET 跨页面传值方法
asp.net中url地址传送中文参数时的两种解决方案
Asp.net 菜单控件简洁版
asp.net jQuery Ajax用户登录功能的实现
asp.net SharpZipLib的压缩与解压问题
asp.net url重写后页面回传问题
asp.net与Discuz!NT整合集成实例教程
Discuz!NT 3与asp.net 整合的实例教程
测试控制台使用方法
.net 动态标题实现方法
asp.net *.ashx类型的文件使用说明

ASP.NET 中的 使用C#编写DES加密程序的framework


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


还是我的老观点,对于新东西我们要不断练习才能够掌握它。所以
我就不写些抽象的概念了,打算以后不定期给出一些实际的代码,呵呵
在微软的帮助中,喜欢把它带的例子称为它的新技术的framework,我在
实际编程中确实感觉如此,我们往往是根据这些实例代码来编写自己的
实际应用的,所以我也用了framework这个名词。 :)
这个例子中演示了如何使用c#中的加密包进行DES算法加密,由于
NGWNET中带的帮助实在是简单,和没有一样,呵呵,不过大家可以借助
这个例子一窥DES加密的用法。
des_demo.cs代码如下:
using System;
using System.Security.Cryptography;
using System.IO;
using System.Text;
public class EncryptStringDES {
public static void Main(String[] args) {
if (args.Length < 1) {
Console.WriteLine("Usage: des_demo ", args[0]);
return;
}
// 使用UTF8函数加密输入参数
UTF8Encoding utf8Encoding = new UTF8Encoding();
byte[] inputByteArray = utf8Encoding.GetBytes(args[0].ToCharArray());
// 方式一:调用默认的DES实现方法DES_CSP.
DES des = DES.Create();
// 方式二:直接使用DES_CSP()实现DES的实体
//DES_CSP DES = new DES_CSP();
// 初始化DES加密的密钥和一个随机的、8比特的初始化向量(IV)

Byte[] key = {0x01, 0x23, 0x45, 0x67, 0x89, 0xab, 0xcd, 0xef};
Byte[] IV = {0x12, 0x34, 0x56, 0x78, 0x90, 0xab, 0xcd, 0xef};
des.Key = key;
des.IV = IV;
// 建立加密流
SymmetricStreamEncryptor sse = des.CreateEncryptor();
// 使用CryptoMemoryStream方法获取加密过程的输出
CryptoMemoryStream cms = new CryptoMemoryStream();
// 将SymmetricStreamEncryptor流中的加密数据输出到CryptoMemoryStream中
sse.SetSink(cms);
// 加密完毕,将结果输出到控制台
sse.Write(inputByteArray);
sse.CloseStream();
// 获取加密数据
byte[] encryptedData = cms.Data;
// 输出加密后结果
Console.WriteLine("加密结果:");
for (int i = 0; i < encryptedData.Length; i++) {
Console.Write("{0:X2} ",encryptedData[i]);
}
Console.WriteLine();
//上面演示了如何进行加密,下面演示如何进行解密
SymmetricStreamDecryptor ssd = des.CreateDecryptor();
cms = new CryptoMemoryStream();
ssd.SetSink(cms);
ssd.Write(encryptedData);
ssd.CloseStream();
byte[] decryptedData = cms.Data;
char[] decryptedCharArray = utf8Encoding.GetChars(decryptedData);
Console.WriteLine("解密后数据:");
Console.Write(decryptedCharArray);
Console.WriteLine();
}
}
编译:
D:\csharp>csc des_demo.cs
Microsoft (R) C# Compiler Version 7.00.8905 [NGWS runtime 2000.14.1812.10]
Copyright (C) Microsoft Corp 2000. All rights reserved.
运行实例:
D:\csharp>des_demo.exe 使用C#编写DES加密程序的framework
加密结果:
3D 22 64 C6 57 D1 C4 C3 CF 77 CE 2F D0 E1 78 2A 4D ED 7A A8 83 F9 0E 14 E1 BA 38
7B 06 41 8D B5 E9 3F 00 0D C3 28 D1 F9 6D 17 4B 6E A7 41 68 40
解密后数据:
使用C#编写DES加密程序的framework