代碼演示VB.NET DES加密解析
作者:佚名 
  大家還為VB.NET DES加密煩惱嗎?在這里給大家舉了一個詳細的例子,代碼清晰,希望大家看過會有技術(shù)上的提高。
 VB.NET經(jīng)過長時間的發(fā)展,很多用戶都很了解VB.NET了,這里我發(fā)表一下個人理解,和大家討論關(guān)于VB.NET DES加密的事,需要VB.NET的,就把C#的轉(zhuǎn)換了一下,歡迎多交流。
VB.NET DES加密代碼:
- Imports System
 - Imports System.Collections.Generic
 - Imports System.Text
 - Imports System.IO
 - Imports System.Security
 - Imports System.Security.Cryptography
 - Namespace ZU14
 - NotInheritable Public Class DES
 - Private iv As String = "1234的yzo"
 - Private key As String = "123在yzo"
 - '/ <summary>
 - '/ DES加密偏移量,必須是>=8位長的字符串
 - '/ </summary>
 - Public Property IV() As String
 - Get
 - Return iv
 - End Get
 - Set
 - iv = value
 - End Set
 - End Property
 - '/ <summary>
 - '/ DES加密的私鑰,必須是8位長的字符串
 - '/ </summary>
 - Public Property Key() As String
 - Get
 - Return key
 - End Get
 - Set
 - key = value
 - End Set
 - End Property
 - '/ <summary>
 - '/ 對字符串進行DES加密
 - '/ </summary>
 - '/ <param name="sourceString">待加密的字符串</param>
 - '/ <returns>加密后的BASE64編碼的字符串</returns>
 - Public Function Encrypt(sourceString As String) As String
 - Dim btKey As Byte() = Encoding.Default.GetBytes(key)
 - Dim btIV As Byte() = Encoding.Default.GetBytes(iv)
 - Dim des As New DESCryptoServiceProvider()
 - Dim ms As New MemoryStream()
 - Try
 - Dim inData As Byte() = Encoding.Default.GetBytes(sourceString)
 - Try
 - Dim cs As New CryptoStream(ms, des.CreateEncryptor(btKey, btIV), CryptoStreamMode.Write)
 - Try
 - cs.Write(inData, 0, inData.Length)
 - cs.FlushFinalBlock()
 - Finally
 - cs.Dispose()
 - End Try
 - Return Convert.ToBase64String(ms.ToArray())
 - Catch
 - End Try
 - Finally
 - ms.Dispose()
 - End Try
 - End Function 'Encrypt
 - '/ <summary>
 - '/ 對DES加密后的字符串進行解密
 - '/ </summary>
 - '/ <param name="encryptedString">待解密的字符串</param>
 - '/ <returns>解密后的字符串</returns>
 - Public Function Decrypt(encryptedString As String) As String
 - Dim btKey As Byte() = Encoding.Default.GetBytes(key)
 - Dim btIV As Byte() = Encoding.Default.GetBytes(iv)
 - Dim des As New DESCryptoServiceProvider()
 - Dim ms As New MemoryStream()
 - Try
 - Dim inData As Byte() = Convert.FromBase64String(encryptedString)
 - Try
 - Dim cs As New CryptoStream(ms, des.CreateDecryptor(btKey, btIV), CryptoStreamMode.Write)
 - Try
 - cs.Write(inData, 0, inData.Length)
 - cs.FlushFinalBlock()
 - Finally
 - cs.Dispose()
 - End Try
 - Return Encoding.Default.GetString(ms.ToArray())
 - Catch
 - End Try
 - Finally
 - ms.Dispose()
 - End Try
 - End Function 'Decrypt
 - '/ <summary>
 - '/ 對文件內(nèi)容進行DES加密
 - '/ </summary>
 - '/ <param name="sourceFile">待加密的文件絕對路徑</param>
 - '/ <param name="destFile">加密后的文件保存的絕對路徑</param>
 - Overloads Public Sub EncryptFile(sourceFile As String, destFile As String)
 - If Not File.Exists(sourceFile) Then
 - Throw New FileNotFoundException("指定的文件路徑不存在!", sourceFile)
 - End If
 - Dim btKey As Byte() = Encoding.Default.GetBytes(key)
 - Dim btIV As Byte() = Encoding.Default.GetBytes(iv)
 - Dim des As New DESCryptoServiceProvider()
 - Dim btFile As Byte() = File.ReadAllBytes(sourceFile)
 - Dim fs As New FileStream(destFile, FileMode.Create, FileAccess.Write)
 - Try
 - Try
 - Dim cs As New CryptoStream(fs, des.CreateEncryptor(btKey, btIV), CryptoStreamMode.Write)
 - Try
 - cs.Write(btFile, 0, btFile.Length)
 - cs.FlushFinalBlock()
 - Finally
 - cs.Dispose()
 - End Try
 - Catch
 - Finally
 - fs.Close()
 - End Try
 - Finally
 - fs.Dispose()
 - End Try
 - End Sub 'EncryptFile
 - '/ <summary>
 - '/ 對文件內(nèi)容進行DES加密,加密后覆蓋掉原來的文件
 - '/ </summary>
 - '/ <param name="sourceFile">待加密的文件的絕對路徑</param>
 - Overloads Public Sub EncryptFile(sourceFile As String)
 - EncryptFile(sourceFile, sourceFile)
 - End Sub 'EncryptFile
 - '/ <summary>
 - '/ 對文件內(nèi)容進行DES解密
 - '/ </summary>
 - '/ <param name="sourceFile">待解密的文件絕對路徑</param>
 - '/ <param name="destFile">解密后的文件保存的絕對路徑</param>
 - Overloads Public Sub DecryptFile(sourceFile As String, destFile As String)
 - If Not File.Exists(sourceFile) Then
 - Throw New FileNotFoundException("指定的文件路徑不存在!", sourceFile)
 - End If
 - Dim btKey As Byte() = Encoding.Default.GetBytes(key)
 - Dim btIV As Byte() = Encoding.Default.GetBytes(iv)
 - Dim des As New DESCryptoServiceProvider()
 - Dim btFile As Byte() = File.ReadAllBytes(sourceFile)
 - Dim fs As New FileStream(destFile, FileMode.Create, FileAccess.Write)
 - Try
 - Try
 - Dim cs As New CryptoStream(fs, des.CreateDecryptor(btKey, btIV), CryptoStreamMode.Write)
 - Try
 - cs.Write(btFile, 0, btFile.Length)
 - cs.FlushFinalBlock()
 - Finally
 - cs.Dispose()
 - End Try
 - Catch
 - Finally
 - fs.Close()
 - End Try
 - Finally
 - fs.Dispose()
 - End Try
 - End Sub 'DecryptFile
 - '/ <summary>
 - '/ 對文件內(nèi)容進行DES解密,加密后覆蓋掉原來的文件
 - '/ </summary>
 - '/ <param name="sourceFile">待解密的文件的絕對路徑</param>
 - Overloads Public Sub DecryptFile(sourceFile As String)
 - DecryptFile(sourceFile, sourceFile)
 - End Sub 'DecryptFile
 - End Class 'DES
 - End Namespace 'ZU14
 
VB.NET DES加密使用方法:
- Dim des As New ZU14.DES()
 - des.IV = "abcd哈哈笑"
 - des.Key = "必須八位"
 - Dim es As String = des.Encrypt("在")
 - Console.WriteLine(es)
 - Console.Write(des.Decrypt(es))
 - des.EncryptFile("d:\a.txt", "d:\b.txt")
 - des.DecryptFile("d:\b.txt")
 - Console.ReadKey(True)
 
【編輯推薦】
責(zé)任編輯:田樹 
                    來源:
                    博客
 














 
 
 
 
 
 
 