编程世界 - 计算机爱好者和编程爱好者的天堂!

编程世界

当前位置: 主页 > Dotnet > ASP.NET >

用ASP.NET加密Cookie数据(2)

时间:2008-11-29 18:20来源:编程世界 作者:无名 点击:
15, 167, 44, 80, 26, 250, 155, 112, _ 2, 94, 11, 204, 119, 35, 184, 197} Private Shared IV_192() As Byte = {55, 103, 246, 79, 36, 99, 167, 3, _ 42, 5, 62, 83, 184, 7, 209, 13, _ 145, 23, 200, 58, 173,

  15, 167, 44, 80, 26, 250, 155, 112, _
  
  2, 94, 11, 204, 119, 35, 184, 197}
  
  Private Shared IV_192() As Byte = {55, 103, 246, 79, 36, 99, 167, 3, _
  
  42, 5, 62, 83, 184, 7, 209, 13, _
  
  145, 23, 200, 58, 173, 10, 121, 222}
  
  
  '标准的DES加密
  
  Public Shared Function Encrypt(ByVal value As String) As String
  
  If value <> "" Then
  
  Dim cryptoProvider As DESCryptoServiceProvider = _
  
  New DESCryptoServiceProvider()
  
  Dim ms As MemoryStream = New MemoryStream()
  
  Dim cs As CryptoStream = _
  
  New CryptoStream(ms, cryptoProvider.CreateEncryptor(KEY_64, IV_64), _
  
  CryptoStreamMode.Write)
  
  Dim sw As StreamWriter = New StreamWriter(cs)
  
  
  sw.Write(value)
  
  sw.Flush()
  
  cs.FlushFinalBlock()
  
  ms.Flush()
  
  
  '再转换为一个字符串
  
  Return Convert.ToBase64String(ms.GetBuffer(), 0, ms.Length)
  
  End If
  
  End Function
  
  
  
  '标准的DES解密
  
  Public Shared Function Decrypt(ByVal value As String) As String
  
  If value <> "" Then
  
  Dim cryptoProvider As DESCryptoServiceProvider = _
  
  New DESCryptoServiceProvider()
  
  
  '从字符串转换为字节组
  
  Dim buffer As Byte() = Convert.FromBase64String(value)
  
  Dim ms As MemoryStream = New MemoryStream(buffer)
  
  Dim cs As CryptoStream = _
  
  New CryptoStream(ms, cryptoProvider.CreateDecryptor(KEY_64, IV_64), _
  
  CryptoStreamMode.Read)
  
  Dim sr As StreamReader = New StreamReader(cs)
  
  
  Return sr.ReadToEnd()
  
  End If
  
  End Function
  
  
  'TRIPLE DES加密
  
  Public Shared Function EncryptTripleDES(ByVal value As String) As String
  
  If value <> "" Then
  
  Dim cryptoProvider As TripleDESCryptoServiceProvider = _
  
  New TripleDESCryptoServiceProvider()
  
  Dim ms As MemoryStream = New MemoryStream()
  
  Dim cs As CryptoStream = _
  
  New CryptoStream(ms, cryptoProvider.CreateEncryptor(KEY_192, IV_192), _
  
  CryptoStreamMode.Write)
  
  Dim sw As StreamWriter = New StreamWriter(cs)
  
  
  sw.Write(value)
  
  sw.Flush()
  
  cs.FlushFinalBlock()
  
  ms.Flush()
  
  
  '再转换为一个字符串
  
  Return Convert.ToBase64String(ms.GetBuffer(), 0, ms.Length)
  
  End If
  
  End Function
  
  
  
  'TRIPLE DES解密
  
  Public Shared Function DecryptTripleDES(ByVal value As String) As String
  
  If value <> "" Then
  
  Dim cryptoProvider As TripleDESCryptoServiceProvider = _
  
  New TripleDESCryptoServiceProvider()
  
  
  '从字符串转换为字节组
  
  Dim buffer As Byte() = Convert.FromBase64String(value)
  
  Dim ms As MemoryStream = New MemoryStream(buffer)
  
  Dim cs As CryptoStream = _
  
  New CryptoStream(ms, cryptoProvider.CreateDecryptor(KEY_192, IV_192), _
  
  CryptoStreamMode.Read)
  
  Dim sr As StreamReader = New StreamReader(cs)
  
  
  Return sr.ReadToEnd()
  
  End If
  
  End Function
  
  
  End Class
  
  上面我们将一组字节初始化为密钥,并且使用的是数字常量,如果你在实际应用中也这样做,这些字节一定要在0和255之间,这是一个字节允许的范围值。
  
  三、创建一个Cookie的应用类
  
  下面我们就创建一个简单的类,来设置和获取Cookies。
  
  Public Class CookieUtil
  
  
  '设置COOKIE *****************************************************
  
  
  'SetTripleDESEncryptedCookie (只针对密钥和Cookie数据)
  
  Public Shared Sub SetTripleDESEncryptedCookie(ByVal key As String, _
  
  ByVal value As String)
   (责任编辑:编程世界)
顶一下
(0)
0%
踩一下
(0)
0%
------分隔线----------------------------
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
验证码:点击我更换图片