源码推荐:使用C#编写DES加密程序的framework
2024-07-21 02:25:15
供稿:网友
源码推荐:使用c#编写des加密程序的framework
batman
还是我的老观点,对于新东西我们要不断练习才能够掌握它。所以
我就不写些抽象的概念了,打算以后不定期给出一些实际的代码,呵呵
在微软的帮助中,喜欢把它带的例子称为它的新技术的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 <string-to-encrypt>", 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