Click here to Skip to main content
65,938 articles
CodeProject is changing. Read more.
Articles
(untagged)

Decrypting Images in VB.NET

0.00/5 (No votes)
6 Mar 2008 1  
Decrypt JPG images or any other images in VB.NET

Introduction

This is the code to decrypt the encrypted image. I am getting the encrypted string from the database and decrypting it into its original format. We have lots of articles and examples on text decryption and there are no articles and examples on image decryption (I may not search well). That's what I decided to give an example on image decryption.

There are some hard-coded values in the program, so please excuse me for that. I am posting this article here to give a basic idea of how to decrypt an image into its original format. Based on this idea, you can write your own program to decrypt.

This is my frist article here. If there are any voilations of The Code Project's rules, please excuse me.

Using the Code

This code is useful to decrypt images in VB.NET.

Imports System.IO
Imports System.Text
Imports System.Security.Cryptography
Imports System.Data.Odbc
Imports System.Drawing
Imports COZErrorLogging
Imports COZSQLException
Public Class Decryption
    Public Function DecryptImage() As String
        Try
            Dim con As OdbcConnection = New OdbcConnection(_
                "Dsn=mydbdsn;uid=icmadmin;pwd=password;alias=MYDBDATA;")
            con.Open()
            Dim cmd As OdbcCommand = New OdbcCommand(_
                "select SIGNATURE from DSCSIGNATURE_MASTER", con)
            Dim dr As OdbcDataReader = cmd.ExecuteReader()
            Dim key As New DESCryptoServiceProvider()
            Dim keybytes() As Byte = ASCIIEncoding.ASCII.GetBytes("abcdEFGH")
            key.Key = keybytes
            dr.Read()
            Dim rawData() As Byte
            Dim sizeS As String
            sizeS = dr.GetString(0)
            rawData = Convert.FromBase64String(sizeS)
            Dim des As New DESCryptoServiceProvider()
            des.Mode = CipherMode.ECB
            des.Padding = PaddingMode.None
            des.Key() = UTF8Encoding.UTF8.GetBytes("abcdEFGH")
            Dim desdecrypt As ICryptoTransform = des.CreateDecryptor(des.Key(), des.IV)
            Dim memoryStream As MemoryStream = New MemoryStream(rawData)
            Dim cryptostreamDecr As New CryptoStream(_
                memoryStream, desdecrypt, CryptoStreamMode.Write)
            cryptostreamDecr.Write(rawData, 0, rawData.Length)
            Dim retrunImage As Image = Image.FromStream(memoryStream)
            retrunImage.Save("C:\\Sudhakar.jpg")
            cryptostreamDecr.Close()
            Return "C:\\Sudhakar.jpg"
        Catch ex As Exception
            MessageBox.Show("Error Occured")
            Return ex.Message
        End Try
    End Function
    Public Shared Sub main()
        Dim obj As New Decryption
        Console.WriteLine("Testing")
        Dim DecryptedSignaturePath As String = obj.DecryptImage()
        Console.WriteLine("Testing Completed")
    End Sub
End Class

Create an object and call the DecryptImage() function. It returns the path:

Dim obj As New Decryption

Console.WriteLine("Testing")

Dim DecryptedSignaturePath As String = obj.DecryptImage()

Console.WriteLine("Testing Completed")

Here is the sample encrypted string that I get from the database by quering.

Aco5uskB95t+3JeNiJSjTNzdDpGH33M9dOx68XhaWPmU5jHvNKmBLK/wDUmBSHFU5hjbxWGqqRmu

DRs8uuwQCVxPxSqFRJBixdxTuDYx+ZhMUrccGeAa3ZV3vBFw4+hhfIGq4sHVxxd1+rZ30JpslPA9

knGDp0sH8D2ScYOnSwfwPZJxg6dLB/A9knGDp0sH8D2ScYOnSwfeAdHMoABGTfy4KqYjWI1bdqGg

ff7OX+vnQUjALz12Yw8NcvFkhwZ3KbvrY7HeJeOlbQfy1GgRguoKLfQHpwNNXYQ03VGd+TNvpz2K

G5W+a2EINIKLJa9GaREA57aSlZ9MO1BzlbdhyJ1xQ6hU/nnZT2aOqV8pXM23EkiEvCx08rDMyH8V

UMbhF61N5FPhiB+9FstMxnljjvFCN+BwPhRypngb0m4C0kbLV13ibdY7wqQnjL6IaWHo212ZHiCU

BwqSnI8ioLnyOBm07jzAhjUeT2V5pAM5VtlwbPJ2t5z4BDDM1LE9WsyzC+S1JzZHK/mzX9sjM96K

ZnyHjZGltQs8Oa1uFYJ8jfqlbQfy1GgRgtfVvoV8vP46lP6tBemZWF8l5a/5BorCUsSW6Fpop8YI

3ipNtvNEbGJTco7doKRQuP6/jvYvDFh14mVmP8sGYrVaoPpqyqQEbKZVQJOVUDKVcLr8NHQjTUzq

JqyjETMi/AOxCwS3zsVVMBrxCI4zCDjURTHW14Cv9VkZx5m3RIfr4CfXf8Z3xkqlyvPBq+3aaqLt

lHKLBlyZe5vym54RiiYO/Kq3JQ+XPZFKVAic80PCC+S1JzZHK/l85b3WDIKwcx9Q434nl0NpH5Th

+0eeHWs0lkOFXuxSrTSWQ4Ve7FKtNJZDhV7sUq00lkOFXuxSrTSWQ4Ve7FKtNJZDhV7sUq00lkOF

XuxSrTSWQ4Ve7FKtNJZDhV7sUq00lkOFXuxSrTSWQ4Ve7FKtNJZDhV7sUq00lkOFXuxSrRzvrUq6

U5a85vF9ypcl7oEn4CO6o+2gwVM1TT9hTpBq6CVXfOMJH8U0lkOFXuxSrTSWQ4Ve7FKtNJZDhV7s

Uq03m5dz5E6bCx6Vhia3SJSNt/pYMDiPAuXF3FyS7VHwlMXcXJLtUfCUxdxcku1R8JTF3FyS7VHw

lOOpZ78QfihA6XjLII6igrg2zQT9Mzbv0rGptgB5d/8Ocln7/SY3aHWLvCLqUCD88A0PuRWUCq4T

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

nePYxKRRQFDVCvaU1wTQFvqBZjSQp5T4L5EEVlVh7UL4m7wOW6QQPRdOmh2ogZXr9KO03UgzpCdN

sIqrp+0uRE1Te6AHFT9/fEGDVkAzdC7hF2gWA3aAC0KFjko/DXgPr3uym63AQ99wlFmYUxtBiECA

AW6kbtLSvj3hPipFCzPCFDH4r98Ix4rEknBI3UqaFpp12snX1OWlNP7xTAdQW5qb7IJNMqzLJAfc

6blMx/n3pXU510jKXEPYUdKQOVFaUT6lnumLo0ks4/1ZuJtWQuI/4D0gY33yU/ar+F7uK6z+lmJU

VX7hIqJ1+Zh/67vydBDsL0PDlgF6n0GzvamnJC/o+t7M37m1n+mnTDx1/wwM+f3QuLdVt7n097bb

6qjZ6I84e5Vaq4gH/j/EmbyRPPBNyS4T5OlCNqCTbzjUikiCMf2uqA7H1S/1UgoqAH2tjpRdi6M7

fZ2KNq8udw6VzGi0wD24rzc3dy8ibTgXgATquDV1jbGyzbC2usxgtlH1qn+AweKpRnyclXUTGZbx

cP+ynJUGgk46sINseFAiakkD1yyWcM6srT5nb92QdOfodenRfdqD1Vuy2LpjscTqL7LYumOxxOov

sti6Y7HE6i+y2LpjscTqL7LYumOxxOovsti6Y7HE6i+y2LpjscTqL0i58S7BNdXXNdirv43QG1QW

5aASRcS2b+MgBTXjiLFRnfXO1jsOWpAi0jGgZZWsKRL3XQs1h8X+nsyTc1YzvVaMIGvKK8zyjM1t

GtdwwYRkNP5A1F+BxYALfdLLpUPo96HCNTzAEScKewUAxONH68EcSmenSEO0mV/X1lMI0L7rljvy

VJ7ICFcWRduPSf4Iydo9y38+iQXDxGVABFb7iDh7o5/GiU+zNVScksvT2aO/ZDpkZHUJk97NwKVq

jS9hIb8emVvwu6TpmpjZC0yo3VrDvThZtcuT52wAhaR0clwmijeEw9QoLzDLapMK9bP73xT0Otk6

xtxWxoH+30I3vwwPKs0Zv3xEYRlTCN45EXWz+rrN6fGh8RUn0qp8zX0tbGzYPeNgxZqZXAKQD7OW

ZwVaCW5Hw0Il8u44cv9et+Zs6AxYjhLG+73+FZNKo3HBcRRsJx8YMGQmVl5FXu072HHBG2vVlRrZ

5zGTrCORoKf8NJZDhV7sUq00lkOFXuxSrTSWQ4Ve7FKtNJZDhV7sUq00lkOFXuxSrTSWQ4Ve7FKt

xkdmcoOE5AAMeyp7QJ684/QYjv/qXKAoqRwHqk5aPYSpHAeqTlo9hKkcB6pOWj2EqRwHqk5aPYSp

HAeqTlo9hKkcB6pOWj2EqRwHqk5aPYSpHAeqTlo9hKkcB6pOWj2EqRwHqk5aPYTBfK8GYMcTrx1t

dWzFYdUEtvLd5rd5hlCTizqdvfouEIP9hAIvVC8WO+I+j435WB240uSS82qa1rjS5JLzaprWuNLk

kvNqmta40uSS82qa1rjS5JLzaprWuNLkkvNqmta40uSS82qa1rjS5JLzaprWuNLkkvNqmta40uSS

82qa1r6fMsy5BuOm

License

This article has no explicit license attached to it but may contain usage terms in the article text or the download files themselves. If in doubt please contact the author via the discussion board below.

A list of licenses authors might use can be found here