Solved

Checking if file is tampered after encryption

Posted on 2007-12-04
4
315 Views
Last Modified: 2013-11-26
Hi,

I am using VB.NEt for a desktop app. Now I have a feature that will export the data into a text file which will be later encrypted. This encrypted file will be copied by the user on a drive and transferred to another PC. Here we will decrypt the file and import the data.

Now my question is: what if the encrypted file is opened by the user and changes made? Due to this, the import routine will get some junk data. Hence I want that after the file is encrypted, we want to take the CRC check and then before importing we again check the CRC to ensure that file is not tampered. How do we accomplish this in VB.NET? Alternately is there any other better way to ensure that file is tampered?

Regards,
mi
0
Comment
Question by:vj_mi
  • 3
4 Comments
 
LVL 9

Expert Comment

by:sognoct
ID: 20410509
md5 of a file is unique. So generating the md5 of the content will create an unique value (of fixed characters number)   that can be used as a crc.
Put that crc at the end of the file, or in the filename ad do the check on the other pc
0
 

Author Comment

by:vj_mi
ID: 20411716
But my file may be huge... say my employee table has 70,000 records. Now I write this data to the file. Now I want to generate crc for this complete file and not for the string. How do I write that md5 code. Second question is: if I add crc to the end of the file, how do I read it again?

Regards,
mi
0
 
LVL 9

Expert Comment

by:sognoct
ID: 20418627
ok ... so, md5 is unique also for 70.000 records.
You can put it on a new row at the end of the file, so just need to read it
fort the code of md5, are you using VB, c#, c++ ?
0
 
LVL 9

Accepted Solution

by:
sognoct earned 500 total points
ID: 20418684
the code for vb .net is :
Imports System
Imports System.Security.Cryptography
Imports System.Text
Imports System.Math
 
Public Class clsmd5
  Public Shared Function calculateMd5CRC(ByVal pfilename As String) As String
    Dim md5Hasher As MD5 = MD5.Create()
    Dim fs As System.IO.FileStream = System.IO.File.OpenRead(pfilename)
    Dim data As Byte() = md5Hasher.ComputeHash(fs)
    Return Convert.ToBase64String(data)
  End Function
End Class

Open in new window

0

Featured Post

Master Your Team's Linux and Cloud Stack

Come see why top tech companies like Mailchimp and Media Temple use Linux Academy to build their employee training programs.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

For those of you who don't follow the news, or just happen to live under rocks, Microsoft Research released a beta SDK (http://www.microsoft.com/en-us/download/details.aspx?id=27876) for the Xbox 360 Kinect. If you don't know what a Kinect is (http:…
A long time ago (May 2011), I have written an article showing you how to create a DLL using Visual Studio 2005 to be hosted in SQL Server 2005. That was valid at that time and it is still valid if you are still using these versions. You can still re…
This video shows how to use Hyena, from SystemTools Software, to bulk import 100 user accounts from an external text file. View in 1080p for best video quality.
The Email Laundry PDF encryption service allows companies to send confidential encrypted  emails to anybody. The PDF document can also contain attachments that are embedded in the encrypted PDF. The password is randomly generated by The Email Laundr…

821 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question