Public Shared Function DESEncrypt(ByVal Data As String, ByVal Key As String) As Byte()
Dim IV() As Byte = {&H12, &H34, &H56, &H78, &H90, &HAB, &HCD, &HEF}
Try
Dim bykey() As Byte = System.Text.Encoding.UTF8.GetBytes(Left(Key, 8))
Dim InputByteArray() As Byte = System.Text.Encoding.UTF8.GetBytes(Data)
Dim des As New DESCryptoServiceProvider
Dim ms As New MemoryStream
Dim cs As New CryptoStream(ms, des.CreateEncryptor(bykey, IV), CryptoStreamMode.Write)
cs.Write(InputByteArray, 0, InputByteArray.Length)
cs.FlushFinalBlock()
Return ms.ToArray()
Catch ex As Exception
End Try
End Function
这是我目前用于DES加密的内容,但由于我是VB.Net的新手,我可以弄清楚如何使用Triple DES而不是DES
答案 0 :(得分:1)
试试这个
Public Shared Function DESEncrypt(ByVal Data As String, ByVal Key As String) As Byte()
Dim IV() As Byte = {&H12, &H34, &H56, &H78, &H90, &HAB, &HCD, &HEF}
Try
Dim bykey() As Byte = System.Text.Encoding.UTF8.GetBytes(Left(Key, 24))
If String.IsNullOrEmpty(Data) Then
Throw New ArgumentException("No data passed", "input")
ElseIf bykey Is Nothing OrElse bykey.Length <> 24 Then
Throw New ArgumentException("Invalid Key. Key must be 24 bytes length", "key")
End If
Dim InputByteArray() As Byte = System.Text.Encoding.UTF8.GetBytes(Data)
Using ms As New IO.MemoryStream
Using des As New Security.Cryptography.TripleDESCryptoServiceProvider
Using cs As New Security.Cryptography.CryptoStream(ms, des.CreateEncryptor(bykey, IV), Security.Cryptography.CryptoStreamMode.Write)
cs.Write(InputByteArray, 0, InputByteArray.Length)
cs.FlushFinalBlock()
Return ms.ToArray()
End Using
End Using
End Using
Catch ex As Exception
End Try
End Function