Encrypts or decrypts data represented as a hexadecimal string using a specified mode.
VB6/VBA
Debug.Print "Testing DES_HexMode ..." Dim nRet As Long Dim strOutput As String Dim strInput As String Dim strKey As String Dim strIV As String Dim sCorrect As String ' "Now is the time for all " in hex strInput = "4e6f77206973207468652074696d6520666f7220616c6c20" strKey = "0123456789abcdef" strIV = "1234567890abcdef" sCorrect = "e5c7cdde872bf27c43e934008c389c0f683788499a7c05f6" ' Set strOutput to be same length as strInput strOutput = String(Len(strInput), " ") Debug.Print "KY=", strKey Debug.Print "IV=", strIV Debug.Print "PT=", strInput ' Encrypt in one-off process nRet = DES_HexMode(strOutput, strInput, strKey, True, "CBC", strIV) Debug.Print "CT=", strOutput Debug.Print "OK=", sCorrect ' Now decrypt back to plain text strInput = strOutput nRet = DES_HexMode(strOutput, strInput, strKey, DECRYPT, "CBC", strIV) Debug.Print "P'=", strOutput
Output
Testing DES_HexMode ... KY= 0123456789abcdef IV= 1234567890abcdef PT= 4e6f77206973207468652074696d6520666f7220616c6c20 CT= E5C7CDDE872BF27C43E934008C389C0F683788499A7C05F6 OK= e5c7cdde872bf27c43e934008c389c0f683788499a7c05f6 P'= 4E6F77206973207468652074696D6520666F7220616C6C20
VB.NET
Console.WriteLine("Testing DES_HexMode ...") ''Dim nRet As Integer Dim strOutput As String Dim strInput As String Dim strKey As String Dim strIV As String Dim sCorrect As String ' "Now is the time for all " in hex strInput = "4e6f77206973207468652074696d6520666f7220616c6c20" strKey = "0123456789abcdef" strIV = "1234567890abcdef" sCorrect = "e5c7cdde872bf27c43e934008c389c0f683788499a7c05f6" ' Set strOutput to be same length as strInput ''strOutput = String(Len(strInput), " ") Console.WriteLine("KY=" & " " & strKey) Console.WriteLine("IV=" & " " & strIV) Console.WriteLine("PT=" & " " & strInput) ' Encrypt in one-off process strOutput = Des.Encrypt(strInput, strKey, Mode.CBC, strIV) Console.WriteLine("CT=" & " " & strOutput) Console.WriteLine("OK=" & " " & sCorrect) ' Now decrypt back to plain text strInput = strOutput strOutput = Des.Decrypt(strInput, strKey, Mode.CBC, strIV) Console.WriteLine("P'=" & " " & strOutput)
[Contents]