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

首頁 > 編程 > .NET > 正文

怎樣使用ASP.Net加密Cookie_.Net教程

2024-07-10 12:50:58
字體:
供稿:網(wǎng)友

推薦:淺談ASP.NET MVC框架內(nèi)置AJAX支持編程技術(shù)
傳統(tǒng)型ASP.NET Web Forms是基于同時包含了表現(xiàn)層和后臺代碼的Web頁面,所以,緊隨其后出現(xiàn)的ASP.NET AJAX,特別是這個框架的服務(wù)器端控件并沒有像它們本應(yīng)該的那樣光芒四射。于是,很多跟隨AJAX時髦的ASP.NET開發(fā)者只是向ASP.NET頁面中隨意地放置一些UpdateP

Cookie是ASP.NET應(yīng)用程序中很重要的一個全局變量,它可以用來保存用戶登錄信息、用戶會話信息,以及一些全局變量或數(shù)據(jù)。為了提高應(yīng)用程序的安全性,加密Cookie是很有必要的。本實例介紹在ASP.NET應(yīng)用程序中加密Cookie的方法。

本實例介紹如何使用在ASP.NET應(yīng)用程序中的加密Cookie的方法。實例中采用的加密方法為DES和TripleDES兩種方法,程序中均實現(xiàn)了 DES和TripleDES的加密和解密方法,同時還設(shè)置了創(chuàng)建處理Cookie的類CookieEncrypt。

1.創(chuàng)建新ASP.NET應(yīng)用程序

在Visual Studio .NET 2003集成開發(fā)環(huán)境中創(chuàng)建新的ASP.NET Web應(yīng)用程序,命名為Example_12_6。

2.創(chuàng)建加密Cookie的類EncryptString

在應(yīng)用程序Example_12_6中添加類文件EncryptString.cs,該文件實現(xiàn)使用DES方法加密、解密數(shù)據(jù)和使用TripleDES方法加密、解密數(shù)據(jù)的方法,還定義了用來加密、解密的密鑰Key以及IV。類文件 EncryptString.cs的程序代碼如下:

以下為引用的內(nèi)容:
public class EncryptString
{
private static byte[] Key64 = {42, 16, 93, 156, 78, 4, 218, 32};
private static byte[] IV64 = {55, 103, 246, 79, 36, 99, 167, 3};
private static byte[] Key192 = {42, 16, 93, 156, 78, 4, 218, 32,15, 167,
44,80, 26, 250, 155, 112,2, 94, 11, 204, 119, 35, 184, 197};
private static byte[] IV192 = {55, 103, 246, 79, 36, 99, 167, 3,42,
5, 62,83, 184, 7, 209, 13,145, 23, 200, 58, 173, 10, 121, 222};
public static String Encrypt(String valueString)
{
if(valueString != "")
{ //定義DES的Provider
DESCryptoServiceProvider desprovider =
new DESCryptoServiceProvider();
//定義內(nèi)存流
MemoryStream memoryStream = new MemoryStream();
//定義加密流
CryptoStream cryptoStream = new CryptoStream(memoryStream,
desprovider.CreateEncryptor(Key64,IV64),
CryptoStreamMode.Write);
//定義寫IO流
StreamWriter writerStream = new StreamWriter(cryptoStream);
//寫入加密后的字符流
writerStream.Write(valueString);
writerStream.Flush();
cryptoStream.FlushFinalBlock();
memoryStream.Flush();
//返回加密后的字符串
return(Convert.ToBase64String(memoryStream.GetBuffer(),0,
(int)memoryStream.Length));
}
return(null);
}
public static String Decrypt(String valueString)
{
if(valueString != "")

 

{ //定義DES的Provider
DESCryptoServiceProvider desprovider =
new DESCryptoServiceProvider();
//轉(zhuǎn)換解密的字符串為二進制
byte[] buffer = Convert.FromBase64String(valueString);
//定義內(nèi)存流
MemoryStream memoryStream = new MemoryStream();
//定義加密流
CryptoStream cryptoStream = new CryptoStream(memoryStream,
desprovider.CreateEncryptor(Key64,IV64),
CryptoStreamMode.Read);
//定義讀IO流
StreamReader readerStream = new StreamReader(cryptoStream);
//返回解密后的字符串
return(readerStream.ReadToEnd());
}
return(null);
}
public static String EncryptTripleDES(String valueString)
{
if(valueString != "")
{ //定義TripleDES的Provider
TripleDESCryptoServiceProvider triprovider =
new TripleDESCryptoServiceProvider();
//定義內(nèi)存流
MemoryStream memoryStream = new MemoryStream();
//定義加密流
CryptoStream cryptoStream = new CryptoStream(memoryStream,
triprovider.CreateEncryptor(Key192,IV192),
CryptoStreamMode.Write);
//定義寫IO流
StreamWriter writerStream = new StreamWriter(cryptoStream);
//寫入加密后的字符流
writerStream.Write(valueString);
writerStream.Flush();
cryptoStream.FlushFinalBlock();
memoryStream.Flush();
//返回加密后的字符串
return(Convert.ToBase64String(memoryStream.GetBuffer(),0,
(int)memoryStream.Length));
}
return(null);
}
public static String DecryptTripleDES(String valueString)
{
if(valueString != "")
{ //定義TripleDES的Provider
TripleDESCryptoServiceProvider triprovider =
new TripleDESCryptoServiceProvider();
//轉(zhuǎn)換解密的字符串為二進制
byte[] buffer = Convert.FromBase64String(valueString);
//定義內(nèi)存流
MemoryStream memoryStream = new MemoryStream();
//定義加密流

CryptoStream cryptoStream = new CryptoStream(memoryStream,
triprovider.CreateEncryptor(Key64,IV64),
CryptoStreamMode.Read);
//定義讀IO流
StreamReader readerStream = new StreamReader(cryptoStream);
//返回解密后的字符串
return(readerStream.ReadToEnd());
}
return(null);
}
}

分享:解析ASP.NET中C 和J#的混合應(yīng)用
不想搞得太復(fù)雜,我僅僅演示實現(xiàn) DataReader和DataSet,起個拋磚引玉的作用,也顧不得代碼結(jié)構(gòu)是否優(yōu)美、性能是否良好,能夠達到本文的目的即可。 為了方便大家親自動手實踐,數(shù)據(jù)庫使用的是ACCESS,文章末尾有下載鏈接。實際項目中要使用SqlServer和ORACLE

共3頁上一頁123下一頁
發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 永清县| 拜泉县| 长武县| 米泉市| 霍林郭勒市| 雅安市| 广水市| 保德县| 成都市| 开原市| 宁陵县| 门头沟区| 康马县| 布尔津县| 滦平县| 靖远县| 阆中市| 凯里市| 搜索| 张掖市| 内乡县| 澄城县| 朔州市| 永定县| 杭州市| 宁乡县| 河曲县| 宜阳县| 佛冈县| 江安县| 应用必备| 开化县| 永胜县| 分宜县| 永寿县| 常熟市| 武强县| 沙坪坝区| 德化县| 广州市| 新竹县|