c#—非對稱加密:加密檔案
★★★★★★ ☆☆☆ ★★★★★★
●●○○ 聶永 ○○●●
§§§§nie_yong@163.com§§§§
◆◆□□nie.yong@126.com□□◆◆
№№№№№№ ※※※ №№№№№№
說明:1.你要注意的是讀取檔案的兩種不同方式;
2.從已經儲存的鑰匙檔案中讀取其內容;
3.這個程式做的很粗糙(要準備考外語六級,要準備期末考試,實在很忙啊!),希望諸位能夠完善,然後也發表出來,在下表示感謝;
4.參考書目: 《c#資料安全手冊》;
5.有做這方面程式的朋友,願意相交。
**部分:
using system;
using system.drawing;
using system.collections;
using system.componentmodel;
using system.windows.forms;
using system.data;
using system.io;
using system.text;
using system.security.cryptography;
using system.threading;
namespace 非對稱加密
///
/// 清理所有正在使用的資源。
///
protected override void dispose( bool disposing )
}base.dispose( disposing );
}#region windows 窗體設計器生成的**
///
/// 設計器支援所需的方法 - 不要使用**編輯器修改
/// 此方法的內容。
///
private void initializecomponent()
#endregion
///
/// 應用程式的主入口點。
///
buffer.blockcopy(bytes,i,rawblock,0,rawblock.length);
decryptblock = crypt.decrypt( rawblock,false );
ms.write(decryptblock,0,decryptblock.length);
}ms.position=0;
byte decode=new byte[ms.length];
ms.read(decode,0,(int)ms.length);
ms.close();
writopic.write(decode,0,decode.length);
writopic.close();
//下面為自己定義的函式啦
//單獨乙個讀取公匙的函式
private string readpublickey()
//單獨乙個讀取私匙的函式
private string readprivatekey()
//加密文字檔案
private string encryptfile( string textinfo, string filename )
//寫入到記憶體中
ms.position = 0;
byte decode = new byte[ms.length];
ms.read(decode,0,(int)ms.length);
string decodeinfo = enc.getstring(decode,0,decode.length);
fs.flush();
fs.close();
ms.close();
return decodeinfo;
}//解密文字檔案
private string decryptfile(string encryptfile,string decryptfile)
else
buffer.blockcopy(bytes,i,rawblock,0,rawblock.length);
decryptblock = crypt.decrypt( rawblock,false );
ms.write(decryptblock,0,decryptblock.length);
}ms.position=0;
byte decode=new byte[ms.length];
ms.read(decode,0,(int)ms.length);
utf8encoding enc=new utf8encoding();
string text=enc.getstring(decode);
//寫入到記憶體中去啊
sw.write(text);
sw.flush();
ms.close();
sw.close();
return text;
}//加密其它非文字檔案,當然可以包括文字檔案
private void encryptother(string file1,string file2)
fs.flush();
fs.close();
}//解密其它非文字檔案,當然可以包括文字檔案
private void decryptother(string fileone,string filetwo)
else
buffer.blockcopy(bytes,i,rawblock,0,rawblock.length);
decryptblock = crypt.decrypt( rawblock,false );
ms.write(decryptblock,0,decryptblock.length);
}ms.position=0;
byte decode=new byte[ms.length];
ms.read(decode,0,(int)ms.length);
ms.close();
writopic.write(decode,0,decode.length);
writopic.close();
對稱加密 非對稱加密
區別在於加密金鑰和解密金鑰是否一樣,一樣則是對稱加密,不一樣則是非對稱加密。對稱加密計算量小,但若不同的客戶端使用不能的金鑰時,伺服器的複雜大。常用的對稱加密包括 des 3des aes des 3des使用的架構為feistel。des金鑰長度為56位,3des相容des,可設定3個56位密碼,...
對稱加密 非對稱加密
1 對稱加密 對稱加密採用了對稱密碼編碼技術,它的特點是檔案加密和解密使用相同的金鑰,即加密金鑰也可以用作解密金鑰,這種方法在密碼學中叫做對稱加密演算法,對稱加密演算法使用起來簡單快捷,金鑰較短,且破譯困難,除了資料加密標準 des 另乙個對稱金鑰加密系統是國際資料加密演算法 idea 它比des的...
對稱加密 非對稱加密
演算法選擇 對稱加密aes,非對稱加密 ecc,訊息摘要 md5,數字簽名 dsa 對稱加密演算法 加解密金鑰相同 名稱金鑰長度 運算速度 安全性資源消耗 des56位較快低 中3des 112位或168位慢中 高aes 128 192 256位快高 低非對稱演算法 加密金鑰和解密金鑰不同 名稱成熟...