.NET编程 -- TripleDES加解密范例

这个范例是以VB.NET进行TripleDES加解密范例

 Imports System  
 Imports System.IO  
 Imports System.Security.Cryptography  
  
 Public Class Form_Main  
  
     Dim byteKey As Byte() = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16}  
     Dim byteIV As Byte() = {8, 7, 6, 5, 4, 3, 2, 1}  
     Dim byteEncrypt As Byte() = Nothing 
     Dim strPlainText As String = String.Empty  
  
     Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load  
  
  
     End Sub 
  
     Private Shared Function TripleDESEncrypt(ByVal strInput As String, ByVal byteKey As Byte(), ByVal byteIV As Byte()) As Byte()  
         Dim tdes As TripleDES = Nothing 
         Dim ict As ICryptoTransform = Nothing 
         Dim ms As MemoryStream = Nothing 
         Dim cs As CryptoStream = Nothing 
         Dim sw As StreamWriter = Nothing 
         Dim byteResult As Byte() = Nothing 
  
         Try 
             tdes = TripleDES.Create()  
             tdes.Key = byteKey  
             tdes.IV = byteIV  
  
             ict = tdes.CreateEncryptor()  
  
             ms = New MemoryStream()  
  
             cs = New CryptoStream(ms, ict, CryptoStreamMode.Write)  
  
             sw = New StreamWriter(cs)  
  
             sw.Write(strInput)  
             sw.Close()  
  
             cs.Close()  
  
             byteResult = ms.ToArray()  
             ms.Close()  
  
             Return byteResult  
         Catch e As Exception  
             Throw e  
         Finally 
             If sw IsNot Nothing Then 
                 sw.Close()  
             End If 
             If cs IsNot Nothing Then 
                 cs.Close()  
             End If 
             If ms IsNot Nothing Then 
                 ms.Close()  
             End If 
         End Try 
     End Function 
  
     Private Shared Function TripleDESDecrypt(ByVal byteInput As Byte(), ByVal byteKey As Byte(), ByVal byteIV As Byte()) As String 
         Dim tdes As TripleDES = Nothing 
         Dim ict As ICryptoTransform = Nothing 
         Dim ms As MemoryStream = Nothing 
         Dim cs As CryptoStream = Nothing 
         Dim sr As StreamReader = Nothing 
         Dim strResult As String = [String].Empty  
  
         Try 
             tdes = TripleDES.Create()  
             tdes.Key = byteKey  
             tdes.IV = byteIV  
  
             ict = tdes.CreateDecryptor()  
  
             ms = New MemoryStream(byteInput)  
  
             cs = New CryptoStream(ms, ict, CryptoStreamMode.Read)  
  
             sr = New StreamReader(cs)  
  
             strResult = sr.ReadToEnd()  
             sr.Close()  
  
             cs.Close()  
  
             ms.Close()  
  
             Return strResult  
         Catch e As Exception  
             Throw e  
         Finally 
             If sr IsNot Nothing Then 
                 sr.Close()  
             End If 
             If cs IsNot Nothing Then 
                 cs.Close()  
             End If 
             If ms IsNot Nothing Then 
                 ms.Close()  
             End If 
         End Try 
     End Function 
  
     Private Sub Button_Start_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button_Start.Click  
         strPlainText = String.Empty  
  
         '唿叫加密方法   
         byteEncrypt = TripleDESEncrypt(TextBox1.Text, byteKey, byteIV)  
  
         '加密结果   
         TextBox2.Text = Convert.ToBase64String(byteEncrypt)  
  
         '解密结果  
         TextBox3.Text = TripleDESDecrypt(byteEncrypt, byteKey, byteIV)  
  
  
     End Sub 
 End Class 

 

posted @ 2008-02-21 11:09  Max Woods  阅读(559)  评论(0编辑  收藏  举报