DotNET密码系统之一的DES对称加密算法保证数据安全
2009-09-15 18:55
746 查看
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));
}
}
}
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));
}
}
}
相关文章推荐
- 利用DotNET密码系统之一的DES对称加密算法保证数据安全
- 利用DotNET密码系统之一的DES对称加密算法保证数据安全
- 利用DotNET密码系统之一的DES对称加密算法保证数据安全
- 利用DotNET密码系统保证数据安全
- 越客会员管理系统自动数据备份功能保证数据安全
- 利用DotNET密码系统保证数据安全
- 摘要:本篇是本人在做一个大数据项目时,对于系统架构的一点总结,如何在保证存储量的情况下,又能保证数据的检索速度。
- 邮件系统管理员应如何加强用户密码安全
- winXP的系统如何避免他人在不需要密码的情况进入安全模式
- [置顶] 【IT】我是计算机系统大师(二)——密码学安全
- 系统安全之常用密码的破解完全手册
- 设置GRUB密码保护系统安全
- ASP.NET 保证数据访问的安全
- 在asp.net中使用加密数据库联接字符串保证数据安全
- 合理运用su和sudo命令以保证系统用户安全
- 企业数据安全系统 EMC Retrospect
- Oracle安全数据系统架构全接触(1)
- 使用SMSMSE服务器保证邮件系统安全
- C#.NET 大型通用信息化系统集成快速开发平台 4.1 版本 - 用户密码安全增强