国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > .NET > 正文

.NET中加密和解密的實現方法2

2024-07-10 13:04:20
字體:
來源:轉載
供稿:網友
使用私有密鑰解密該文檔,這是唯一可以解密的密鑰,并且沒有通過網絡傳遞。

  不對稱算法比對稱算法計算的花費多、速度慢。因此我們不希望在線對話中使用不對稱算法加密所有信息。相反,我們使用對稱算法。下面的例子中我們使用不對稱加密來加密對稱密鑰。接著就使用對稱算法加密了。實際上安全接口層(ssl)建立服務器和瀏覽器之間的安全對話使用的就是這種工作方式。
示例是一個tcp程序,分為服務器端和客戶端。服務器端的工作流程是:

   從客戶端接收公共密鑰。

   使用公共密鑰加密未來使用的對稱密鑰。

   將加密了的對稱密鑰發送給客戶端。

   給客戶端發送使用該對稱密鑰加密的信息。

  代碼如下:



namespace com.billdawson.crypto
{
public class cryptoserver
{
private const int rsa_key_size_bits = 1024;
private const int rsa_key_size_bytes = 252;
private const int tdes_key_size_bits = 192;

public static void main(string[] args)
{
int port;
string msg;
tcplistener listener;
tcpclient client;
symmetricalgorithm symm;
rsacryptoserviceprovider rsa;
//獲取端口
try
{
port = int32.parse(args[0]);
msg = args[1];
}
catch
{
console.writeline(usage);
return;
}
//建立監聽
try
{
listener = new tcplistener(port);
listener.start();
console.writeline("listening on port {0}...",port);

client = listener.accepttcpclient();
console.writeline("connection....");
}
catch (exception e)
{
console.writeline(e.message);
console.writeline(e.stacktrace);
return;
}

try
{
rsa = new rsacryptoserviceprovider();
rsa.keysize = rsa_key_size_bits;

// 獲取客戶端公共密鑰
rsa.importparameters(getclientpublickey(client));

symm = new tripledescryptoserviceprovider();
symm.keysize = tdes_key_size_bits;



商業源碼熱門下載www.html.org.cn

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 高唐县| 张掖市| 绵竹市| 宁津县| 仙游县| 枣庄市| 虞城县| 稻城县| 浦县| 广昌县| 乌恰县| 永兴县| 土默特左旗| 湛江市| 高碑店市| 确山县| 台东县| 县级市| 额尔古纳市| 股票| 寿光市| 浦北县| 鹤壁市| 大英县| 炉霍县| 广东省| 新余市| 固安县| 白朗县| 讷河市| 安仁县| 徐汇区| 贡山| 呈贡县| 张家口市| 盐城市| 通州市| 墨江| 茌平县| 奈曼旗| 临潭县|