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 

     

  • 相关阅读:
    VS2019调试 asp.net core 2.2 出现《ANCM In-Process Handler Load Failure 发布后启动错误处理》处理
    网页上显示数学公式的三种方案
    FileStream实现多线程断点续传(已封装)
    绝对定位不脱离文档流的方法
    百度地图InfoWindow弹窗圆角
    并发:线程池异步执行与创建单独的线程执行
    互斥锁和自旋锁的区别
    事务的特性和隔离级别
    线程不安全与线程安全示例
    多线程过去与现在
  • 原文地址:https://www.cnblogs.com/MaxWoods/p/1076198.html
Copyright © 2011-2022 走看看