使用C#编写DES加密程序的framework
来源:互联网 发布:无线传感器网络的概念 编辑:程序博客网 时间:2024/06/05 17:25
- 还是我的老观点,对于新东西我们要不断练习才能够掌握它。所以我就不写些抽象的概念了,打算以后不定期给出一些实际的代码,呵?窃谖⑷淼陌镏校不栋阉睦映莆男录际醯腇ramework,我在实际编程中确实感觉如此,我们往往是根据这些实例代码来编写自己的实际应用的,所以我也用了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;
- }
-
- UTF8Encoding utf8Encoding = new UTF8Encoding();
- byte[] inputByteArray = utf8Encoding.GetBytes(args[0].ToCharArray());
-
- DES des = DES.Create();
-
-
-
- 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 cms = new 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
- 运行实例:
- 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