資源描述:
《c#實(shí)現(xiàn)拖拽打開方法》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫(kù)。
1、首先,這是個(gè)winform的程序,部署在市場(chǎng)部同事的筆記本上面,基于.Net2.0做的,它的功能大致如下:·加密合同文檔(*.doc)·在客戶處解密此合同文檔,進(jìn)行編輯,再次加密·回到公司可以通過密碼打開它由于時(shí)間關(guān)系,只是很粗略的做了個(gè)大概。打開vs2008,建立一個(gè)winform項(xiàng)目,設(shè)計(jì)程序界面如下:??很簡(jiǎn)單的,待會(huì)兒在文章最后會(huì)有下載地址。我們可以把任意文件,拖入程序界面,即可進(jìn)行加密,在此暫不作說(shuō)明,大家可以待會(huì)兒下載回去試試,很簡(jiǎn)單的。下面分享一下加密代碼吧:?代碼usingSystem;usingSystem.Colle
2、ctions.Generic;usingSystem.Text;usingSystem.Security.Cryptography;usingSystem.IO;namespaceFileLock{//////異常處理類///publicclassCryptoHelpException:ApplicationException{publicCryptoHelpException(stringmsg):base(msg){}}publicclassCryptoHelp{privateconstulon
3、gFC_TAG=0xFC010203040506CF;privateconstintBUFFER_SIZE=128*1024;//////檢驗(yàn)兩個(gè)Byte數(shù)組是否相同//////Byte數(shù)組///Byte數(shù)組///true-相等privatestaticboolCheckByteArrays(byte[]b1,byte[]b2){if(b1.Length==b2.Le
4、ngth){for(inti=0;i///創(chuàng)建RijndaelSymmetricAlgorithm//////密碼//////加密對(duì)象privatestaticSymmetricAlgorithmCreate
5、Rijndael(stringpassword,byte[]salt){PasswordDeriveBytespdb=newPasswordDeriveBytes(password,salt,"SHA256",1000);SymmetricAlgorithmsma=Rijndael.Create();sma.KeySize=256;sma.Key=pdb.GetBytes(32);sma.Padding=PaddingMode.PKCS7;returnsma;}//////加密文件隨機(jī)數(shù)生成///p
6、rivatestaticRandomNumberGeneratorrand=newRNGCryptoServiceProvider();//////生成指定長(zhǎng)度的隨機(jī)Byte數(shù)組//////Byte數(shù)組長(zhǎng)度///隨機(jī)Byte數(shù)組privatestaticbyte[]GenerateRandomBytes(intcount){byte[]bytes=newbyte[count];rand.GetBytes(by
7、tes);returnbytes;}//////加密文件//////待加密文件///加密后輸入文件///加密密碼publicstaticvoidEncryptFile(stringinFile,stringoutFile,stringpassword){using(FileStreamfin=File.OpenRead(inFi
8、le),fout=File.OpenWrite(outFile)){longlSize=fin.Length;//輸入文件長(zhǎng)度intsize=(int)lSize;byte[]bytes=newbyte[B