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(), 0, ms.Length)
End Function2、DES解密
Public Function DecryptDes(ByVal SourceStr As String, Optional ByVal myKey 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请注意:不同的加密方式,密钥长度有要求;密钥可以写入配置文件中,定期调整;
本文介绍了使用Visual Basic实现的DES加密和解密方法。通过指定密钥和初始向量(IV),可以对字符串进行加密,并将加密后的结果转换为Base64字符串。同样地,也提供了从Base64字符串解密回原始字符串的功能。注意不同加密方式对密钥长度的要求。

7555

被折叠的 条评论
为什么被折叠?



