Html源代码图片解密,通过图片加密、解密文件

【实例简介】

【实例截图】

9b1dbe0e6c7c18543e6a5dedf4f2517b.png

【核心代码】

using System;

using System.Collections.Generic;

using System.ComponentModel;

using System.Data;

using System.Drawing;

using System.Text;

using System.Windows.Forms;

using System.IO; //

using System.Security.Cryptography;

namespace _65利用图片加密文件

{

public partial class Form1 : Form

{

public Form1()

{

InitializeComponent();

}

//加密

private void button3_Click_1(object sender, EventArgs e)

{

try

{

if (pictureBox1.ImageLocation==null)

{ MessageBox.Show("请选择一幅图片用于加密"); return; }

if (textBox1.Text == "")

{ MessageBox.Show("请选择加密文件路径"); return; }

//图片流

FileStream fsPic = new FileStream(pictureBox1.ImageLocation, FileMode.Open, FileAccess.Read);

//加密文件流

FileStream fsText = new FileStream(textBox1.Text, FileMode.Open, FileAccess.Read);

//初始化Key IV

byte[] bykey = new byte[16];

byte[] byIv = new byte[8];

fsPic.Read(bykey, 0, 16);

fsPic.Read(byIv, 0, 8);

//临时加密文件

string strPath = textBox1.Text;//加密文件的路径

int intLent = strPath.LastIndexOf("\\") 1;

int intLong = strPath.Length;

string strName = strPath.Substring(intLent, intLong - intLent);//要加密的文件名称

string strLinPath = "C:\\" strName;//临时加密文件路径

FileStream fsOut = File.Open(strLinPath, FileMode.Create, FileAccess.Write);

//开始加密

RC2CryptoServiceProvider desc = new RC2CryptoServiceProvider();//desc进行加密

BinaryReader br = new BinaryReader(fsText);//从要加密的文件中读出文件内容

CryptoStream cs = new CryptoStream(fsOut, desc.CreateEncryptor(bykey, byIv), CryptoStreamMode.Write);//写入临时加密文件

cs.Write(br.ReadBytes((int)fsText.Length), 0, (int)fsText.Length);//写入加密流

cs.FlushFinalBlock();

cs.Flush();

cs.Close();

fsPic.Close();

fsText.Close();

fsOut.Close();

File.Delete(textBox1.Text.TrimEnd());//删除原文件

File.Copy(strLinPath, textBox1.Text);//复制加密文件

File.Delete(strLinPath);//删除临时文件

MessageBox.Show("加密成功");

pictureBox1.ImageLocation = null;

textBox1.Text = "";

}

catch (Exception ee)

{

MessageBox.Show(ee.Message);

}

}

//解密

private void button4_Click_1(object sender, EventArgs e)

{

try

{

//图片流

FileStream fsPic = new FileStream(pictureBox1.ImageLocation, FileMode.Open, FileAccess.Read);

//解密文件流

FileStream fsOut = File.Open(textBox1.Text, FileMode.Open, FileAccess.Read);

//初始化Key IV

byte[] bykey = new byte[16];

byte[] byIv = new byte[8];

fsPic.Read(bykey, 0, 16);

fsPic.Read(byIv, 0, 8);

//临时解密文件

string strPath = textBox1.Text;//加密文件的路径

int intLent = strPath.LastIndexOf("\\") 1;

int intLong = strPath.Length;

string strName = strPath.Substring(intLent, intLong - intLent);//要加密的文件名称

string strLinPath = "C:\\" strName;//临时解密文件路径

FileStream fs = new FileStream(strLinPath, FileMode.Create, FileAccess.Write);

//开始解密

RC2CryptoServiceProvider desc = new RC2CryptoServiceProvider();//desc进行解密

CryptoStream csDecrypt = new CryptoStream(fsOut, desc.CreateDecryptor(bykey, byIv), CryptoStreamMode.Read);//读出加密文件

BinaryReader sr = new BinaryReader(csDecrypt);//从要加密流中读出文件内容

BinaryWriter sw = new BinaryWriter(fs);//写入解密流

sw.Write(sr.ReadBytes(Convert.ToInt32(fsOut.Length)));//

sw.Flush();

sw.Close();

sr.Close();

fs.Close();

fsOut.Close();

fsPic.Close();

csDecrypt.Flush();

File.Delete(textBox1.Text.TrimEnd());//删除原文件

File.Copy(strLinPath, textBox1.Text);//复制加密文件

File.Delete(strLinPath);//删除临时文件

MessageBox.Show("解密成功");

pictureBox1.ImageLocation = null;

textBox1.Text = "";

}

catch (Exception ee)

{

MessageBox.Show(ee.Message);

}

}

//选择图片

private void button1_Click(object sender, EventArgs e)

{

if (openFileDialog1.ShowDialog() == DialogResult.OK)

pictureBox1.Load(openFileDialog1.FileName);

}

//选择文本

private void button2_Click(object sender, EventArgs e)

{

if (openFileDialog1.ShowDialog() == DialogResult.OK)

textBox1.Text = openFileDialog1.FileName;

}

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值