加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

vb.net DES加密与解密

发布时间:2020-12-17 07:36:06 所属栏目:百科 来源:网络整理
导读: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.IsNu

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

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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读