步步为营-17-FileStream-文件加密/解密
以前使用的File是操作小的文本文件,用的并不常见,FileStream(操作字节),可以操作所有格式的文件,用途较广泛
下面做一个通过文件流给文件加密解密的小软件.
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms; namespace 文件加密
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
} private void btnFile_Click(object sender, EventArgs e)
{
OpenFileDialog ofd = new OpenFileDialog();
ofd.Title = "请选择要加密的文件";
//初始路径
ofd.InitialDirectory = @"C:\Users\home\Desktop";
ofd.Filter = "所有文件|*.*";
ofd.ShowDialog();
txtFile.Text = ofd.FileName;
} private void btnCode_Click(object sender, EventArgs e)
{
SaveFileDialog sfd = new SaveFileDialog();
sfd.Title = "请选择要保存文件的路径";
sfd.InitialDirectory = @"C:\Users\home\Desktop";
sfd.Filter = "所有文件|*.*";
sfd.ShowDialog();
txtCodeFile.Text = sfd.FileName; //调用方法
MakeCode( "加密");
}
private void btnUnCode_Click(object sender, EventArgs e)
{
SaveFileDialog sfd = new SaveFileDialog();
sfd.Title = "请选择要保存文件的路径";
sfd.InitialDirectory = @"C:\Users\home\Desktop";
sfd.Filter = "所有文件|*.*";
sfd.ShowDialog();
txtCodeFile.Text = sfd.FileName; //调用方法
MakeCode("解密");
} public void MakeCode(string content)
{
//1 先读取文件
using (FileStream fsRead = new FileStream(txtFile.Text.Trim(), FileMode.OpenOrCreate, FileAccess.Read))
{
using (FileStream fsWrite = new FileStream(txtCodeFile.Text.Trim(), FileMode.OpenOrCreate, FileAccess.Write))
{
//设置进度条
progressBar1.Maximum = (int)fsRead.Length; byte[] buffer = new byte[ * * ];
while (true)
{
int r = fsRead.Read(buffer, , buffer.Length);
if (r == )
{
break;
}
byte passWord = ;
if (byte.TryParse(txtPassword.Text.Trim(), out passWord)&& content.Equals("加密"))
{
for (int i = ; i < buffer.Length; i++)
{
buffer[i] += passWord;
}
}
if (byte.TryParse(txtPassword.Text.Trim(), out passWord) && content.Equals("解密"))
{
for (int i = ; i < buffer.Length; i++)
{
buffer[i] -= passWord;
}
} fsWrite.Write(buffer, , r);
progressBar1.Value = (int)fsWrite.Length;
}
}
MessageBox.Show("保存成功!");
}
} }
}
1 将普通视频文件通过此工具加密
2 现在打开文件
3 解密成功后打开文件
步步为营-17-FileStream-文件加密/解密的更多相关文章
- linux环境下给文件加密/解密的方法
原文地址:linix环境下给文件加密/解密的方法 作者:oracunix 一. 利用 vim/vi 加密:优点:加密后,如果不知道密码,就看不到明文,包括root用户也看不了:缺点:很明显让别人知 ...
- android 中文件加密 解密 算法实战
现在项目里面有一个需求,本项目里面下载的视频和文档都不允许通过其他的播放器播放,在培训机构里面这样的需求很多.防止有人交一份钱,把所有的课件就拷给了别人.这样的事情培训机构肯定是不愿意的.现在我项目里 ...
- linux 使用vim文件加密/解密的方法
一. 利用 vim/vi 加密:优点:加密后,如果不知道密码,就看不到明文,包括root用户也看不了:缺点:很明显让别人知道加密了,容易让别人把加密的文件破坏掉,包括内容破坏和删除: vi编辑器相信大 ...
- Spring boot RSA 文件加密解密
github项目地址 rsa_demo ##测试 加密D:/hello/test.pdf 文件,生成加密后的文件 testNeedDecode.pdf 对testNeedDecode.pdf 文件进行 ...
- 微信小程序(17)-- RSA加密 解密 加签 验签
RSA加密 解密 加签 验签 /** * 注:区分RSA私钥的类型,有pkcs1和pkcs8.pkcs8格式的私钥主要用于Java中 pkcs1格式: -----BEGIN RSA PRIVATE K ...
- 文件加密 解密 pdftk openssl gpg vim
openssl加密和解密 . openssl des -salt -in file -out file.des openssl des -d -salt -in file.des -out file ...
- ABAP文件加密解密-PGP
1.SM69创建命令 2.解密 DATA: lv_para = '--passphrase (key) -o /oracle/sfdata/sfdata.csv -d /oracle/sfdata/s ...
- php文件加密解密
利用base64加解密 base64_encode是加密,而base64_decode是解密 语法:string base64_encode(string data); 语法:string bas ...
- C#做的一个加密/解密的类
转自:http://www.16aspx.com/Article/3904 using System; using System.Security.Cryptography; using System ...
随机推荐
- xgboost应用
在业务中,我们经常需要对数据建模并预测.简单的情况下,我们采用 if else 判断(一棵树)即可.但如果预测结果与众多因素有关,而每一个特征的权重又不尽相同. 所以我们如何把这些特征的权重合理的找出 ...
- Ruby 集合数组常用遍历方法
迭代器简介 先简单介绍一下迭代器. 1.一个Ruby迭代器就是一个简单的能接收代码块的方法(比如each这个方法就是一个迭代器).特征:如果一个方法里包含了yield调用,那这个方法肯定是迭代器: 2 ...
- vue项目中安装使用echarts
安装:cnpm install echarts -S (安装依赖并引入到 package.json) 官网安装说明:http://echarts.baidu.com/tutorial.html#%E5 ...
- 关于apache 开启 ssl https 支持 TLS1.2 的些事
项目背景 需要搭建一个小程序的服务器,当然要使用https协议服务器windows service 2012 r2,后台语言是php,服务集成环境装的是appserv2.5 ,apache2.2证书申 ...
- JavaScript学习 - 基础(四) - 控制语句/异常处理
控制语句 if-else 语句 <script> //控制语句 //if-else格式: var x = 1 if(x==1){ console.log("this is if& ...
- Shiro的三种授权(十二)
前提就是在Realm的授权方法中查询出权限并返回List<String>形式 @Override protected AuthorizationInfo doGetAuthorizatio ...
- SpringMVC与Struts不同(五)
springmvc与struts2不同 1.springmvc的入口是一个servlet即前端控制器,而struts2入口是一个filter过滤器. 2.springmvc是基于方法开发(一个url对 ...
- SRS+flv.js打造兼容性较高的直播、点播平台
**************************************************************************************************** ...
- 安装python3后使用pip和pip3的区别是什么?
安装python3后使用pip和pip3的区别是什么? 1.其实这两个命令效果是一样的,没有区别: (1)比如安装库numpy,pip3 install numpy或者pip install ...
- GCC编译过程与动态链接库和静态链接库
1. 库的介绍 库是写好的现有的,成熟的,可以复用的代码.现实中每个程序都要依赖很多基础的底层库,不可能每个人的代码都从零开始,因此库的存在意义非同寻常. 本质上来说库是一种可执行代码的二进制形式,可 ...