DES加密解密类

Imports System.Text
Imports System.Security.Cryptography
Public   Class TripleDES
#Region 
"Key&IV"
    Private key() As Byte = {123456789101112131415161718192021222324}
    
Private iv() As Byte = {65110682669178200219}
#
End Region

#Region 
"Encrypt"
    Public Function Encrypt(ByVal plainText As StringAs Byte()
        
' Declare a UTF8Encoding object so we may use the GetByte 
        ' method to transform the plainText into a Byte array. 
        Dim utf8encoder As UTF8Encoding = New UTF8Encoding
        
Dim inputInBytes() As Byte = utf8encoder.GetBytes(plainText)

        
' Create a new TripleDES service provider 
        Dim tdesProvider As TripleDESCryptoServiceProvider = New TripleDESCryptoServiceProvider

        
' The ICryptTransform interface uses the TripleDES 
        ' crypt provider along with encryption key and init vector 
        ' information 
        Dim cryptoTransform As ICryptoTransform = tdesProvider.CreateEncryptor(Me.key, Me.iv)

        
' All cryptographic functions need a stream to output the 
        ' encrypted information. Here we declare a memory stream 
        ' for this purpose. 
        Dim encryptedStream As MemoryStream = New MemoryStream
        
Dim cryptStream As CryptoStream = New CryptoStream(encryptedStream, cryptoTransform, CryptoStreamMode.Write)

        
' Write the encrypted information to the stream. Flush the information 
        ' when done to ensure everything is out of the buffer. 
        cryptStream.Write(inputInBytes, 0, inputInBytes.Length)
        cryptStream.FlushFinalBlock()
        encryptedStream.Position 
= 0

        
' Read the stream back into a Byte array and return it to the calling 
        ' method. 
        Dim result(encryptedStream.Length - 1As Byte
        encryptedStream.Read(result, 
0, encryptedStream.Length)
        cryptStream.Close()
        
Return result
    
End Function

#
End Region


#Region 
"Decrypt"
    Public Function Decrypt(ByVal inputInBytes() As ByteAs String
        
' UTFEncoding is used to transform the decrypted Byte Array 
        ' information back into a string. 
        Dim utf8encoder As UTF8Encoding = New UTF8Encoding
        
Dim tdesProvider As TripleDESCryptoServiceProvider = New TripleDESCryptoServiceProvider

        
' As before we must provide the encryption/decryption key along with 
        ' the init vector. 
        Dim cryptoTransform As ICryptoTransform = tdesProvider.CreateDecryptor(Me.key, Me.iv)

        
' Provide a memory stream to decrypt information into 
        Dim decryptedStream As MemoryStream = New MemoryStream
        
Dim cryptStream As CryptoStream = New CryptoStream(decryptedStream, cryptoTransform, CryptoStreamMode.Write)
        cryptStream.
Write(inputInBytes, 0, inputInBytes.Length)
        cryptStream.FlushFinalBlock()
        decryptedStream.Position 
= 0

        
' Read the memory stream and convert it back into a string 
        Dim result(decryptedStream.Length - 1As Byte
        decryptedStream.Read(result, 
0, decryptedStream.Length)
        cryptStream.Close()
        
Dim myutf As UTF8Encoding = New UTF8Encoding
        
Return myutf.GetString(result)
    
End Function

#
End Region

End Class


加密和解密函数的调用方法

     Private   Sub Button1_Click(ByVal sender As System.ObjectByVal e As System.EventArgs) Handles Button1.Click
        
'加密
        Dim x As New TripleDES
        
Dim b_encoded() As Byte
        
Dim myUnicode As UnicodeEncoding = New UnicodeEncoding

        b_encoded 
= x.Encrypt(RichTextBox1.Text)
        RichTextBox2.Text 
= myUnicode.GetChars(b_encoded)
    
End Sub



    
Private   Sub Button2_Click(ByVal sender As System.ObjectByVal e As System.EventArgs) Handles Button2.Click
        
'解密
        Dim unicoder As UnicodeEncoding = New UnicodeEncoding
        
Dim EncryptedBytes As Byte() = unicoder.GetBytes(richTextBox2.Text)
        
Dim x As New TripleDES

        RichTextBox1.Text 
= x.Decrypt(EncryptedBytes)
    
End Sub

End Class



 
原代码地址:http://www.devarticles.com/c/a/VB.Net/String-Encryption-With-Visual-Basic-.NET/

你可能感兴趣的:(加密解密)