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 

     

  • 相关阅读:
    sklearn的train_test_split函数
    Tensorflow报错:InvalidArgumentError: You must feed a value for placeholder tensor 'input_y' with dtype
    conda install 安装太慢怎么办?
    python merge、concat合并数据集
    如何调用写好的指定模块?——sys.path
    对分类特征做编码
    ThreadPoolExecutor的创建
    MYSQL中VARCHAR长度怎么选?
    JAVA实现一个低性能的WEB服务器(一)——线程池
    在连接校园网的同时连接外网|同时访问内网与外网
  • 原文地址:https://www.cnblogs.com/MaxWoods/p/1076198.html
Copyright © 2011-2022 走看看