'加密方法
Public Function Encrypt(ByVal pToEncrypt As String, ByVal DesKey As String) As String
Dim des As New Security.Cryptography.DESCryptoServiceProvider()
Dim inputByteArray() As Byte
inputByteArray = System.Text.Encoding.Default.GetBytes(pToEncrypt)
des.Key = System.Text.ASCIIEncoding.ASCII.GetBytes(DesKey)
des.IV = System.Text.ASCIIEncoding.ASCII.GetBytes(DesKey)
Dim ms As New System.IO.MemoryStream()
Dim cs As New Security.Cryptography.CryptoStream(ms, des.CreateEncryptor, Security.Cryptography.CryptoStreamMode.Write)
cs.Write(inputByteArray, 0, inputByteArray.Length)
cs.FlushFinalBlock()
Dim ret As New System.Text.StringBuilder()
Dim b As Byte
For Each b In ms.ToArray()
ret.AppendFormat("{0:X2}", b)
Next
Return ret.ToString()
End Function
'解密方法
Public Function Decrypt(ByVal pToDecrypt As String, ByVal DesKey As String) As String
Dim des As New Security.Cryptography.DESCryptoServiceProvider()
Dim len As Integer
len = pToDecrypt.Length / 2 - 1
Dim inputByteArray(len) As Byte
Dim x, i As Integer
For x = 0 To len
i = Convert.ToInt32(pToDecrypt.Substring(x * 2, 2), 16)
inputByteArray(x) = CType(i, Byte)
Next
des.Key = System.Text.ASCIIEncoding.ASCII.GetBytes(DesKey)
des.IV = System.Text.ASCIIEncoding.ASCII.GetBytes(DesKey)
Dim ms As New System.IO.MemoryStream()
Dim cs As New Security.Cryptography.CryptoStream(ms, des.CreateDecryptor, Security.Cryptography.CryptoStreamMode.Write)
cs.Write(inputByteArray, 0, inputByteArray.Length)
cs.FlushFinalBlock()
Return System.Text.Encoding.Default.GetString(ms.ToArray)
End Function
本文提供了一套使用DES算法进行数据加密和解密的方法。通过Visual Basic实现,包括创建加密密钥、初始化向量,并利用内存流和CryptoStream进行数据转换。

801

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



