zoukankan      html  css  js  c++  java
  • .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 

     

  • 相关阅读:
    小程序自定义组件(3)子向父传参
    postgresql插件安装
    二进制减法的实现
    mysql锁表问题
    mysql查看修改参数
    众数问题-找出超过一半的数
    只出现一次的数
    元素最大间距离
    第一个缺失数字
    局部最小值位置
  • 原文地址:https://www.cnblogs.com/MaxWoods/p/1076198.html
Copyright © 2011-2022 走看看