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 

     

  • 相关阅读:
    MVC MVP MVVM三者的区别
    有状态组件 和 无状态组件的区别
    判断数据类型的几种方法
    bind的使用
    新时代web组件开发标准
    node.js上传文件
    封装的组件
    mysql数据库比较,各数据库不同之处
    node.js中使用Redis
    centos下安装nodejs的三种种方式
  • 原文地址:https://www.cnblogs.com/MaxWoods/p/1076198.html
Copyright © 2011-2022 走看看