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