国产探花免费观看_亚洲丰满少妇自慰呻吟_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

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 潼关县| 仪征市| 菏泽市| 仪陇县| 珠海市| 温宿县| 务川| 嘉黎县| 阿勒泰市| 濮阳县| 高安市| 武夷山市| 盘锦市| 天津市| 汕头市| 习水县| 平定县| 江油市| 精河县| 阳信县| 务川| 泰和县| 惠东县| 山阴县| 襄樊市| 梅州市| 哈尔滨市| 岚皋县| 澄城县| 张家界市| 类乌齐县| 阳西县| 依兰县| 陕西省| 宁海县| 宾川县| 伊金霍洛旗| 隆安县| 荣成市| 庆元县| 临清市|