VB.Net 字符串加密类

 

Public Class Cls_JM


    使用
    Dim Jm As New Cls_JM(2)
    Dim strTmp As String

    Jm.jiemi(strTmp)
    Jm.Jiami(strTmp)

    Private TripleDes As New System.Security.Cryptography.TripleDESCryptoServiceProvider

    Private Function TruncateHash(ByVal key As String, ByVal length As Integer) As Byte()
        Dim sha1 As New System.Security.Cryptography.SHA1CryptoServiceProvider   Hash the key.  
        Dim keyBytes() As Byte = System.Text.Encoding.Unicode.GetBytes(key)
        Dim hash() As Byte = sha1.ComputeHash(keyBytes)   Truncate or pad the hash. 
        ReDim Preserve hash(length - 1)
        Return hash
    End Function

    Sub New(ByVal key As String)   Initialize the crypto provider.  
        TripleDes.Key = TruncateHash(key, TripleDes.KeySize \ 8)
        TripleDes.IV = TruncateHash("", TripleDes.BlockSize \ 8)
    End Sub

    Public Function jiami(ByVal plaintext As String) As String   Convert the plaintext string to a byte array. 
        Dim plaintextBytes() As Byte = System.Text.Encoding.Unicode.GetBytes(plaintext)   Create the stream. 
        Dim ms As New System.IO.MemoryStream   Create the encoder to write to the stream. 
        Dim encStream As New System.Security.Cryptography.CryptoStream(ms, TripleDes.CreateEncryptor(), System.Security.Cryptography.CryptoStreamMode.Write)   Use the crypto stream to write the byte array to the stream. 
        encStream.Write(plaintextBytes, 0, plaintextBytes.Length)
        encStream.FlushFinalBlock()   Convert the encrypted stream to a printable string. 
        Return Convert.ToBase64String(ms.ToArray)
    End Function

    Public Function jiemi(ByVal encryptedtext As String) As String   Convert the encrypted text string to a byte array. 
        Dim encryptedBytes() As Byte = Convert.FromBase64String(encryptedtext)   Create the stream. 
        Dim ms As New System.IO.MemoryStream   Create the decoder to write to the stream. 
        Dim decStream As New System.Security.Cryptography.CryptoStream(ms, TripleDes.CreateDecryptor(), System.Security.Cryptography.CryptoStreamMode.Write)   Use the crypto stream to write the byte array to the stream. 
        decStream.Write(encryptedBytes, 0, encryptedBytes.Length)
        decStream.FlushFinalBlock()   Convert the plaintext stream to a string. 
        Return System.Text.Encoding.Unicode.GetString(ms.ToArray)
    End Function


End Class

 

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。