C#如何對任何文件加密解密

问题描述

如題:C#如何對任何文件加密解密,不是單純對文本文件加密解密,需對如.dll等

解决方案

解决方案二:
其实就是对数据流加密,你把文件读到流里面,然后加密流,代码网上很多
解决方案三:
http://support.microsoft.com/kb/307010/zh-cnhttp://blog.csdn.net/loundar/article/details/3138058
解决方案四:
引用2楼caozhy的回复:

http://support.microsoft.com/kb/307010/zh-cnhttp://blog.csdn.net/loundar/article/details/3138058

我有找到這些,也有寫了測試發現對.dll,.lab的文件加密后,再解密出來的文件就無法使用了...對.txt是沒問題...
解决方案五:
解密的算法有问题吧找个小一点的文件,1K左右的加密之前,分析一下byte数组解密之后,再看byte数组,看到底一致不一致
解决方案六:
不清楚,只对文件里的内容加过密,帮顶
解决方案七:
前段时间遇到过,不会,也学习下。。我只是给打了个包压缩了。。
解决方案八:
這樣寫的...publicclassEncryptKit{///<summary>///Callthisfunctiontoremovethekeyfrommemoryafteruseforsecurity///</summary>///<paramname="Destination"></param>///<paramname="Length"></param>///<returns></returns>[System.Runtime.InteropServices.DllImport("KERNEL32.DLL",EntryPoint="RtlZeroMemory")]publicstaticexternboolZeroMemory(IntPtrDestination,intLength);///<summary>///FunctiontoGeneratea64bitsKey.///</summary>///<returns>返回生成的密钥</returns>publicstaticstringGenerateKey(){//CreateaninstanceofSymetricAlgorithm.KeyandIVisgeneratedautomatically.//DESCryptoServiceProviderdesCrypto=(DESCryptoServiceProvider)DESCryptoServiceProvider.Create();//UsetheAutomaticallygeneratedkeyforEncryption.//returnASCIIEncoding.ASCII.GetString(desCrypto.Key);byte[]key=newbyte[]{10,20,3,94,22,90,44,31};returnASCIIEncoding.UTF8.GetString(key);}///<summary>///加密文件///</summary>///<paramname="sInputFilename">要加密的文件</param>///<paramname="sOutputFilename">加密后保存的文件</param>///<paramname="sKey">密钥</param>publicstaticvoidEncryptFile(stringsInputFilename,stringsOutputFilename,stringsKey){using(FileStreamfsInput=newFileStream(sInputFilename,FileMode.Open,FileAccess.Read)){byte[]bytearrayinput=newbyte[fsInput.Length];fsInput.Read(bytearrayinput,0,bytearrayinput.Length);fsInput.Close();FileStreamfsEncrypted=newFileStream(sOutputFilename,FileMode.OpenOrCreate,FileAccess.Write);DESCryptoServiceProviderDES=newDESCryptoServiceProvider();DES.Key=ASCIIEncoding.UTF8.GetBytes(sKey);DES.IV=ASCIIEncoding.UTF8.GetBytes(sKey);ICryptoTransformdesencrypt=DES.CreateEncryptor();CryptoStreamcryptostream=newCryptoStream(fsEncrypted,desencrypt,CryptoStreamMode.Write);cryptostream.Write(bytearrayinput,0,bytearrayinput.Length);cryptostream.Close();fsEncrypted.Close();}}///<summary>//////</summary>///<paramname="sInputFilename">要解密的文件</param>///<paramname="sOutputFilename">解决后保存的文件</param>///<paramname="sKey">密钥</param>publicstaticvoidDecryptFile(stringsInputFilename,stringsOutputFilename,stringsKey){DESCryptoServiceProviderDES=newDESCryptoServiceProvider();//A64bitkeyandIVisrequiredforthisprovider.//SetsecretkeyForDESalgorithm.DES.Key=ASCIIEncoding.UTF8.GetBytes(sKey);//Setinitializationvector.DES.IV=ASCIIEncoding.UTF8.GetBytes(sKey);//Createafilestreamtoreadtheencryptedfileback.using(FileStreamfsread=newFileStream(sInputFilename,FileMode.Open,FileAccess.Read)){//CreateaDESdecryptorfromtheDESinstance.ICryptoTransformdesdecrypt=DES.CreateDecryptor();//Createcryptostreamsettoreadanddoa//DESdecryptiontransformonincomingbytes.CryptoStreamcryptostreamDecr=newCryptoStream(fsread,desdecrypt,CryptoStreamMode.Read);//Printthecontentsofthedecryptedfile.StreamWriterfsDecrypted=newStreamWriter(sOutputFilename);fsDecrypted.Write(newStreamReader(cryptostreamDecr).ReadToEnd());fsDecrypted.Flush();fsDecrypted.Close();}}}
解决方案九:
我买了一套文档,其中一个word加密打不开,求高手解密!
解决方案十:
利用对称算法加密和解密文件示例//加密文件示例protectedvoidButton1_Click(objectsender,EventArgse){stringmyFile=TextBox1.Text;stringmyPassword=TextBox2.Text;stringmyEnFile=TextBox3.Text;try{byte[]myIV={0x12,0x34,0x56,0x78,0x90,0xAB,0xCD,0xEF};byte[]myKey=System.Text.Encoding.UTF8.GetBytes(myPassword);FileStreammyInStream=newFileStream(myFile,FileMode.Open,FileAccess.Read);FileStreammyOutStream=newFileStream(myEnFile,FileMode.OpenOrCreate,FileAccess.Write);myOutStream.SetLength(0);byte[]myBytes=newbyte[100];longmyInLength=0;longmyLength=myInStream.Length;DESmyProvider=newDESCryptoServiceProvider();//指定DESCryptoStreammyCryptoStream=newCryptoStream(myOutStream,myProvider.CreateEncryptor(myKey,myIV),CryptoStreamMode.Write);while(myInLength<myLength){intmylen=myInStream.Read(myBytes,0,100);myCryptoStream.Write(myBytes,0,mylen);myInLength+=mylen;}//codego.net/tags/15/1/myCryptoStream.Close();myInStream.Close();myOutStream.Close();Response.Write("<script>alert('加密文件成功!');</script>");}catch(Exceptionex){Response.Write("<script>alert('"+ex.Message+"');</script>");}}//解密示例protectedvoidButton1_Click(objectsender,EventArgse){stringstr1=TextBox1.Text;stringstrPwd=TextBox2.Text;stringstr2=TextBox3.Text;try{byte[]myIV={0x12,0x34,0x56,0x78,0x90,0xAB,0xCD,0xEF};byte[]myKey=System.Text.Encoding.UTF8.GetBytes(strPwd);FileStreammyFileIn=newFileStream(str1,FileMode.Open,FileAccess.Read);FileStreammyFileOut=newFileStream(str2,FileMode.OpenOrCreate,FileAccess.Write);myFileOut.SetLength(0);byte[]myBytes=newbyte[100];longmyLength=myFileIn.Length;longmyInLength=0;DESmyProvider=newDESCryptoServiceProvider();CryptoStreammyDeStream=newCryptoStream(myFileOut,myProvider.CreateDecryptor(myKey,myIV),CryptoStreamMode.Write);while(myInLength<myLength){intmylen=myFileIn.Read(myBytes,0,100);myDeStream.Write(myBytes,0,mylen);myInLength+=mylen;}myDeStream.Close();myFileOut.Close();myFileIn.Close();Response.Write("<script>alert('解密文件成功!');</script>");}catch(Exceptionex){Response.Write("<script>alert('"+ex.Message+"');</script>");}

时间: 2024-07-31 15:53:44

C#如何對任何文件加密解密的相关文章

求帮助啊 急用啊-利用C语言设计简单的文件加密解密程序

问题描述 利用C语言设计简单的文件加密解密程序 利用C语言设计简单的文件加密解密程序,并通过代码实现,希望得到源代码. 解决方案 最简单的用xor实现加密.http://blog.csdn.net/fdipzone/article/details/20413631 解决方案二: http://blog.163.com/chatter@126/blog/static/12766566120101020102247603/http://blog.csdn.net/szhhck/article/det

简单加密-老手给新手下的题,求解答,用c#简单的对文件加密解密

问题描述 老手给新手下的题,求解答,用c#简单的对文件加密解密 用c#将文件(mp3.mp4等视频音乐文件),转换成数组之类的,并在后面+1,简单的使文件加密,让别人打不开,解密时再减去1,让文件还原,还能继续播放.求代码啊刚毕业,啥也不会.新手跪求啊,已经折腾了一个晚上,还没写出来. 解决方案 这个简单: 加密: var data = File.ReadAllBytes("c:\xx.mp3"); File.WriteAllBytes("c:\xx1.mp3",

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

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

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

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

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

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

求java写的Linux平台下的文件加密解密程序

问题描述 麻烦哪位手头有这种代码的朋友能够不吝赐教,不胜感激!如果有现成代码,还麻烦您能发到liujuguangguang@126.com不胜感激! 解决方案 解决方案二:要沉了!解决方案三:你可以去看一下:javax.crypto.CipherOutputStreamjavax.crypto.CipherInputStream这两个类

采用Cipher DES针对文件加密、解密

由于经常用一些加密或者解密文件的,所以写了一个简单的采用Cipher DES针对文件加密.解密的工具类,记录一下,防止以后忘记了! import java.io.BufferedReader; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.InputStream; import java.io.InputStreamReader; import java.io.OutputStrea

Android文件加密:加密解密出来文件打开有误。

问题描述 Android文件加密:加密解密出来文件打开有误. 使用CipherInputStream,CipherOutputStream对文件进行加密解密,对于jpg,tex,pdf文档都可以正常显示,但是对png,apk文件解密出来的文件打开不了,png提示没有缩略图,apk提示解析压缩包有误.所有加密解密文件大小基本没大的变化. 解决方案 如何加密解密文件Android AES 文件加密解密Android AES 文件加密解密 解决方案二: 直接比较加解密前后文件的md5等,看是否完全一致

C#做的一个加密/解密的类

加密|解密 大家要有兴趣,可以一起来讨论一下 WebService数据交互安全问题,以下的这个代码,可以用于Dotnet环境下的任何托管方式的应用程序,在实际应用中有两个实例.其中,有一个挂在Internet上的,URL:http://www.tttsss.com/webservice/THRDataService.asmx , 有兴趣的可以看看其中的Soap信息.当然,要看里面的加密解密过程,就没办法了!否则,我呀太没面子了,是吧! 前两年写的东西,现在整理一下发出来!以前公司需要做WebSe