VB.Net DES encryption function, to Triple DES
-
13-12-2019 - |
Question
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
this is what I currently have for my DES encryption, but as I am fairly new to VB.Net I can figure out how to make it use Triple DES rather than DES
Solution
Try this
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
Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow