C#对文件的字节加密/解密-可逆

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.IO;
using System.Threading;

namespace 文件加密
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void btn_Encode_Click(object sender, EventArgs e)
        {
            Thread th1 = new Thread(new ThreadStart(EncodingFile));
            th1.Start();
        }
        private void EncodingFile()
        {
            string inf = @txt_source.Text;//源文件地址
            string outf = @txt_des.Text;//目的文件地址
            FileInfo fi = new FileInfo(inf);
           
progressBar1.Maximum = (int)fi.Length;
            using (FileStream outstream = new FileStream(@outf, FileMode.Create))
            {
                using (FileStream fs = new FileStream(@inf, FileMode.Open))
                {
                    byte[] bytes = new byte[1024 * 1024 * 10];//10MB
                    int readlength;
                    while ((readlength = fs.Read(bytes, 0, bytes.Length)) > 0)
                    {
                        for (int i = 0; i < readlength; i++)
                        {
                            bytes[i] = (byte)(byte.MaxValue - bytes[i]);
                        }
                       
                        outstream.Write(bytes, 0, readlength);
                       progressBar1.Value += readlength;
                    }
                }
            }
            MessageBox.Show("加密完成,重复此过程即可解密!");
        }
    }
}
 

时间: 2024-09-25 14:16:11

C#对文件的字节加密/解密-可逆的相关文章

【C/C++学院】0801-重定向以及文件扫描/二进制加密解密/简单加密/按照密码加密/动态库与静态库

重定向以及文件扫描 #define _CRT_SECURE_NO_WARNINGS//关闭安全检查 #include<stdio.h> #include<stdlib.h> void main1() { char str[100] = { 0 }; scanf("%s", str); printf("str=%s\n", str); system(str); } void main2() { char str[100] = { 0 }; fs

总结C语言在嵌入式开发中应用的知识点(文件数据的加密与解密)

<span style="font-family: Arial, Helvetica, sans-serif; background-color: rgb(255, 255, 255);"> 好几天没写总结了,因为最近特别特别忙,各种驱动的代码都要我去改去测试,我主要最近主要是在搞驱动中数据,文件加密解密这块,就这块内容,便运用到了C语言最核心的两个知识点---数组和指针.</span>  加密数据和文件为什么要用到指针和数组?          首先你要打开一

android中对文件加密解密的实现_Android

现在项目里面有一个需求,本项目里面下载的视频和文档都不允许通过其他的播放器播放,在培训机构里面这样的需求很多.防止有人交一份钱,把所有的课件就拷给了别人.这样的事情培训机构肯定是不愿意的.现在我项目里面也出了这么个需求.下面介绍一下我的实现. 文件加解密的流程及原理 1.加密方法:存储文件时,从输入流中截取文件的字节数组,对字节数组进行加密,至于加密的方式和算法就可以视需求而定了,然后把加密后的字节数组写入到文件中,最后生成加密后的文件: 2.解密方法:同加密方法一样,只不过是对字节数据进行解密

C#加密解密文件小工具实现代码_C#教程

DebugLZQ在网上搜索相关文件加密的程序,发现给出的基本都是针对"字符创"."文本"的加密与解密.对视频文件.图片等一般文件的加密解密程序少之又少,故写下此文,实现一个对一般文件进行加密的小工具. 程序的主要功能是:用户通过文件选择框选择要加密的文件->输入密码进行加密:选择加密后的文件,输入密码进行解密. 程序的主界面如下: 三个按钮的Click事件处理程序如下: 复制代码 代码如下: private void btnSelectFile_Click(o

android中对文件加密解密的实现

现在项目里面有一个需求,本项目里面下载的视频和文档都不允许通过其他的播放器播放,在培训机构里面这样的需求很多.防止有人交一份钱,把所有的课件就拷给了别人.这样的事情培训机构肯定是不愿意的.现在我项目里面也出了这么个需求.下面介绍一下我的实现. 文件加解密的流程及原理 1.加密方法:存储文件时,从输入流中截取文件的字节数组,对字节数组进行加密,至于加密的方式和算法就可以视需求而定了,然后把加密后的字节数组写入到文件中,最后生成加密后的文件: 2.解密方法:同加密方法一样,只不过是对字节数据进行解密

PB连接描述文件的密码加密及其解密原理

本文阐述PB开发环境下数据库连接描述文件的密码加密和解密原理. 加密原理:首先将原字符串反转(reverse),逐个字符取ASCII并由10进制转为16进制值,然后转为小写,最后末尾加'00'作为结束符.解密原理:去掉末尾'00',将原字符串反转(reverse),每2个字符由16进制转为10进制值,即ASCII值,根据ASCII取字符,累积到一个字符串,这就是真正的登录密码. 在PB开发环境下要连接数据库必须预先创建一个描述文件,该描述文件的条目写在注册表HKEY_CURRENT_USERSo

一组PHP可逆加密解密算法实例代码

 这篇文章主要介绍了一组PHP可逆加密解密算法实例代码,有需要的朋友可以参考一下 对于大部分密码加密,我们可以采用md5.sha1等方法.可以有效防止数据泄露,但是这些方法仅适用于无需还原的数据加密.   对于需要还原的信息,则需要采用可逆的加密解密算法.   下面一组PHP函数是实现此加密解密的方法:   加密算法如下: 代码如下: function encrypt($data, $key) {  $key = md5($key);     $x  = 0;     $len = strlen

用超级加密3000给文件加密解密的方法

本软件是一个功能强大.安全高效,简单易用的数据加密和保护软件. 它有超快和最强的文件夹,文件加密功能.数据保护功能,文件夹.文件的粉碎删除以及文件夹伪装等功能. 1.运行软件 双击桌面上的图标 或者点击"开始→程序→超级加密3000→超级加密3000"即可运行该软件.进入软件主界面. 超级加密3000的界面有点类似于资源管理器的界面,看上去非常简洁,功能按钮在上方一目了然.左侧的目录树空格及右侧的目录内容空格使得文件的选择非常方便. 二.蔠级加密3000的功能之一磁盘保护 该软件还提供

unix 方便的加密解密文件

    linux中安装mcrypt,然后使用crypt加密解密文件.     mac os X中安装ccrypt,使用ccrypt和ccdecrypt加解密文件.