C 非對稱加密 加密檔案

2021-04-17 00:40:46 字數 3128 閱讀 7631

c#—非對稱加密:加密檔案

★★★★★★ ☆☆☆ ★★★★★★

●●○○     聶永     ○○●●

§§§§[email protected]§§§§

◆◆□□[email protected]□□◆◆

№№№№№№ ※※※ №№№№№№   

說明: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位快高 低非對稱演算法 加密金鑰和解密金鑰不同 名稱成熟...