利用DotNET密码系统之一的DES对称加密算法保证数据安全(C#)

利用DotNET密码系统保证数据安全

/////////////////////////////////////////////////////////////

//Author: stardicky //

//E-mail: stardicky@hotmail.com //

//QQNumber: 9531511 //

//CompanyName: Ezone International //

//Class: HBS-0308 //

//title: 利用DotNET密码系统保证数据安全 //

/////////////////////////////////////////////////////////////

//注:利用DotNET密码系统之一的DES对称加密算法保证数据安全 //

/////////////////////////////////////////////////////////////

using System;

using System.IO;

using System.Text;

using System.Security.Cryptography;

namespace EzoneInternationalSecurityCryptography

{

class EzoneSecurityCryptographyDemo

{

[STAThread]

public static void Main(string[] args)

{

//加密数据(从内存到文件)

EzoneEncryptorDemo();

//解密数据(从文件到内存)

EzoneDecryptorDemo();

}

/// <summary>

/// 加密

/// </summary>

public static void EzoneEncryptorDemo()

{

//创建一个文件对象,文件的模式是创建新文件,文件的访问权限是可写!

FileStream fs=new FileStream(“EzoneDemo.txt”,FileMode.Create,FileAccess.Write);

Console.WriteLine(“请输入你想要进行加密的字符串:”);

//输入你想要进行加密的字符串

string YourInput=Console.ReadLine();

//将字符串转换成字节

byte[] YourInputStorage=System.Text.Encoding.UTF8.GetBytes(YourInput);

//创建一个DES算法的加密类

DESCryptoServiceProvider MyServiceProvider=new DESCryptoServiceProvider();

//从DES算法的加密类对象的CreateEncryptor方法,创建一个加密转换接口对象

//第一个参数的含义是:对称算法的机密密钥(长度为64位,也就是8个字节)

// 可以人工输入,也可以随机生成方法是:MyServiceProvider.GenerateKey();

//第二个参数的含义是:对称算法的初始化向量(长度为64位,也就是8个字节)

// 可以人工输入,也可以随机生成方法是:MyServiceProvider.GenerateIV();

ICryptoTransform MyTransform=MyServiceProvider.CreateEncryptor(new byte[]{100,110,120,130,100,110,120,130},new byte[]{100,110,120,130,100,110,120,130});

//CryptoStream对象的作用是将数据流连接到加密转换的流

CryptoStream MyCryptoStream=new CryptoStream(fs,MyTransform,CryptoStreamMode.Write);

//将字节数组中的数据写入到加密流中

MyCryptoStream.Write(YourInputStorage,0,YourInputStorage.Length);

//关闭加密流对象

MyCryptoStream.Close();

}

/// <summary>

/// 解密

/// </summary>

public static void EzoneDecryptorDemo()

{

FileStream fs=new FileStream(“EzoneDemo.txt”,FileMode.Open,FileAccess.Read);

DESCryptoServiceProvider MyServiceProvider=new DESCryptoServiceProvider();

//从DES算法的加密类对象的CreateEncryptor方法,创建一个解密转换接口对象

//[对称算法的机密密钥]必须是加密时候的[对称算法的机密密钥]

//[对称算法的初始化向量]必须是加密时候的[对称算法的初始化向量]

//如果不一样,则会抛出一个异常。

ICryptoTransform MyTransform=MyServiceProvider.CreateDecryptor(new byte[]{100,110,120,130,100,110,120,130},new byte[]{100,110,120,130,100,110,120,130});

CryptoStream MyCryptoStream=new CryptoStream(fs,MyTransform,CryptoStreamMode.Read);

byte[] YourInputStorage=new byte[1000];

int len=MyCryptoStream.Read(YourInputStorage,0,YourInputStorage.Length);

Console.WriteLine(“你刚才输入的字符串是:”);

Console.WriteLine(System.Text.Encoding.UTF8.GetString(YourInputStorage,0,len));

}

}

}

    原文作者:CrystalPipe
    原文地址: http://www.cnblogs.com/x369/articles/139398.html
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞