C#加密实现
来源:互联网 发布:小米max usb网络共享 编辑:程序博客网 时间:2024/05/22 22:15
大一刚学完C++,然后立志做一个尽心尽职的软狗,学习C#(.net)比必经之路。
C++刚学完文件系统,然后就找了一个C#的文件系统应用的例子,就是文件的加密与解密。
首先要进行文件与文件夹操作就必须引入System.IO命名空间
这个例子主要使用了File类和MemoryStream类
类功能介绍
File:提供用于创建、复制、删除、移动、和打开文件的静态方法,并协助FileStream对象
MemoryStream:创建其支持储存区为内存的流
其次进行加密与解密操作,使用DES加密的话就必须引入System.Security.Cryptography命名空间类
System.Security.Cryptography 命名空间提供加密服务,包括安全的数据编码和解码,以及许多其他操作,例如散列法、随机数字生成和消息身份验证。其中DES加密为其中一个加密算法
程序的实现思路主要是:先读取已有文件,然后随机生成密钥和初始化向量,创建一个内存流,用密钥加密文件并把加密结果存入内存流,然后把内存流的数据写入加密文件。(这个例子中加密后明文数据依然存在)
using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.IO;using System.Security.Cryptography;namespace encrypt{ class Program { static void Main(string[] args) { FileStream file = File.OpenRead("300 Classic example.txt"); byte[] fileArray = new byte[file.Length]; file.Read(fileArray, 0, fileArray.Length); file.Close(); DESCryptoServiceProvider des = new DESCryptoServiceProvider(); des.GenerateKey(); des.GenerateIV(); Console.WriteLine("DES加密密钥为:"); foreach (var item in des.Key) Console.Write(string.Format("0:X2",item)); Console.WriteLine("\nDES加密初始化向量为:"); foreach (var item in des.IV) Console.Write(string.Format("{0:X2}",item)); FileStream filekey = File.Create("Key"); filekey.Write(des.Key, 0, des.Key.Length); filekey.Close(); MemoryStream memorystream = new MemoryStream(); CryptoStream cryptostream = new CryptoStream(memorystream, des.CreateEncryptor(), CryptoStreamMode.Write); cryptostream.FlushFinalBlock(); FileStream fileencrypt = File.Create("300 Classic example.encrypt"); foreach (byte value in memorystream.ToArray()) fileencrypt.WriteByte(value); fileencrypt.Close(); cryptostream.Close(); memorystream.Close(); } }}
0 0
- C#实现MD5加密
- C#实现MD5加密
- des加密(c#实现)
- C#实现MD5加密
- des加密(c#实现)
- C#实现数据加密
- C#实现MD5加密
- C#实现MD5加密
- C#实现MD5加密
- C#实现MD5加密
- C#实现MD5加密
- C#实现md5加密
- C#实现MD5加密
- C#实现MD5加密
- C#实现MD5加密
- C#实现MD5加密
- C#实现MD5加密
- C# 实现MD5加密
- Android中点击Button
- Java基础2
- 插入排序之直接插入(InsertSort)
- Ubuntu10.10下编译安装vim 7.4(Ubuntu11.x/12.x安装方法通用)
- 8-5
- C#加密实现
- HTML:第一天
- Zend Framework2 - Cache 用法
- 《c和指针》读书笔记3
- [java基础学习]04——Java基础语法(三)
- 数据结构与算法学习——冒泡排序
- 在MyEclipse中把JSP默认编码改为UTF-8
- IOS学习之简单的登陆布局(一)
- DBUtils架构分析