vb.net DES加密与解密

前端之家收集整理的这篇文章主要介绍了vb.net DES加密与解密前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

1、DES加密

Public Function EncryptDes(ByVal SourceStr As String,Optional ByVal myKey As String = "",Optional ByVal myIV As String = "") As String '使用的DES对称加密
        If String.IsNullOrEmpty(myKey) Then
            myKey = Me.JMKey
        End If
        If String.IsNullOrEmpty(myIV) Then
            myIV = Me.JMIv
        End If
        Dim des As New System.Security.Cryptography.DESCryptoServiceProvider 'DES算法
        'Dim DES As New System.Security.Cryptography.TripleDESCryptoServiceProvider'TripleDES算法
        Dim inputByteArray As Byte()
        inputByteArray = System.Text.Encoding.Default.GetBytes(SourceStr)
        des.Key = System.Text.Encoding.UTF8.GetBytes(myKey) 'myKey DES用8个字符,TripleDES要24个字符
        des.IV = System.Text.Encoding.UTF8.GetBytes(myIV) 'myIV DES用8个字符,TripleDES要24个字符
        Dim ms As New System.IO.MemoryStream
        Dim cs As New System.Security.Cryptography.CryptoStream(ms,des.CreateEncryptor(),System.Security.Cryptography.CryptoStreamMode.Write)
        Dim sw As New System.IO.StreamWriter(cs)
        sw.Write(SourceStr)
        sw.Flush()
        cs.FlushFinalBlock()
        ms.Flush()
        Return Convert.ToBase64String(ms.GetBuffer(),ms.Length)
    End Function
2、DES解密

Public Function DecryptDes(ByVal SourceStr As String,Optional ByVal myIV As String = "") As String    '使用标准DES对称解密
        If String.IsNullOrEmpty(SourceStr) Then
            Return SourceStr
        End If
        If SourceStr = "" Then
            Return SourceStr
        End If
        If String.IsNullOrEmpty(myKey) Then
            myKey = Me.JMKey
        End If
        If String.IsNullOrEmpty(myIV) Then
            myIV = Me.JMIv
        End If
        Dim des As New System.Security.Cryptography.DESCryptoServiceProvider 'DES算法
        'Dim DES As New System.Security.Cryptography.TripleDESCryptoServiceProvider'TripleDES算法
        des.Key = System.Text.Encoding.UTF8.GetBytes(myKey) 'myKey DES用8个字符,TripleDES要24个字符
        des.IV = System.Text.Encoding.UTF8.GetBytes(myIV) 'myIV DES用8个字符,TripleDES要24个字符
        Dim buffer As Byte() = Convert.FromBase64String(SourceStr)
        Dim ms As New System.IO.MemoryStream(buffer)
        Dim cs As New System.Security.Cryptography.CryptoStream(ms,des.CreateDecryptor(),System.Security.Cryptography.CryptoStreamMode.Read)
        Dim sr As New System.IO.StreamReader(cs)
        DecryptDes = sr.ReadToEnd()
        Return DecryptDes
    End Function

请注意: 不同的加密方式,密钥长度有要求; 密钥可以写入配置文件中,定期调整;

猜你在找的VB相关文章