PC Review


Reply
Thread Tools Rate Thread

Can I somehow password-protect pre-import CSV files?

 
 
=?Utf-8?B?am9uaWdy?=
Guest
Posts: n/a
 
      24th Feb 2007
I wrote a simple VB.NET application that imports and edits CSV files.

Now I’d like to “lock” the raw (pre-import) CSV files so these cannot be
opened separately. It is not high-sensitive data, I just don’t want folks to
peek in the files.

So time-consuming encryption is not necessary, just a simple
password-to-open that I can program in my application so it internally opens
the imported CSV file would be perfect, but I can’t get it done. In fact it
seems difficult to password-protect a CSV file in any way.

The pre-import CSV’s are delivered as ZIP’s, so I thought about
password-protecting the ZIP files and importing and unzipping these within my
program, but this would seem much more challenging (if at all possible)
especially for an inexperienced programmer like me.

Any tips, pointers, ideas are highly appreciated. Thanks!
 
Reply With Quote
 
 
 
 
Bill Voorhees
Guest
Posts: n/a
 
      25th Feb 2007
one easy solution is to save as excel file, password protect it, delete csv
file. When you need the csv file, open the excel file and save as csv file.


"jonigr" <(E-Mail Removed)> wrote in message
news:FB4119E8-4913-4E2C-9B7A-(E-Mail Removed)...
>I wrote a simple VB.NET application that imports and edits CSV files.
>
> Now I'd like to "lock" the raw (pre-import) CSV files so these cannot be
> opened separately. It is not high-sensitive data, I just don't want folks
> to
> peek in the files.
>
> So time-consuming encryption is not necessary, just a simple
> password-to-open that I can program in my application so it internally
> opens
> the imported CSV file would be perfect, but I can't get it done. In fact
> it
> seems difficult to password-protect a CSV file in any way.
>
> The pre-import CSV's are delivered as ZIP's, so I thought about
> password-protecting the ZIP files and importing and unzipping these within
> my
> program, but this would seem much more challenging (if at all possible)
> especially for an inexperienced programmer like me.
>
> Any tips, pointers, ideas are highly appreciated. Thanks!



 
Reply With Quote
 
=?Utf-8?B?am9uaWdy?=
Guest
Posts: n/a
 
      25th Feb 2007
Bill, that seemed a great idea but I just saved a 295 kB CSV file as a 1451
kB XLS file: it appears the filesize increases almost 5X. That's a serious
price to pay.

Appreciate your suggestion, but still open to others that may keep the
filesize in check. Thanks.

-joni

"Bill Voorhees" wrote:

> one easy solution is to save as excel file, password protect it, delete csv
> file. When you need the csv file, open the excel file and save as csv file.
>
>
> "jonigr" <(E-Mail Removed)> wrote in message
> news:FB4119E8-4913-4E2C-9B7A-(E-Mail Removed)...
> >I wrote a simple VB.NET application that imports and edits CSV files.
> >
> > Now I'd like to "lock" the raw (pre-import) CSV files so these cannot be
> > opened separately. It is not high-sensitive data, I just don't want folks
> > to
> > peek in the files.
> >
> > So time-consuming encryption is not necessary, just a simple
> > password-to-open that I can program in my application so it internally
> > opens
> > the imported CSV file would be perfect, but I can't get it done. In fact
> > it
> > seems difficult to password-protect a CSV file in any way.
> >
> > The pre-import CSV's are delivered as ZIP's, so I thought about
> > password-protecting the ZIP files and importing and unzipping these within
> > my
> > program, but this would seem much more challenging (if at all possible)
> > especially for an inexperienced programmer like me.
> >
> > Any tips, pointers, ideas are highly appreciated. Thanks!

>
>
>

 
Reply With Quote
 
Tom Leylan
Guest
Posts: n/a
 
      25th Feb 2007
The reason that you cannot password protect a CSV file is because by
definition there is no place to store the password. It's a file of
"comma-separated values" for that to be recognized by any program one can't
arbitrarily declare a password is inside it somewhere.

You have two standard solutions. One is to create your own file format
which consists of a password field "plus" a csv file. Your app would know
where the password is and can check it and it would know the offset where
the CSV begins. Keep in mind that while this may stop the novice it
wouldn't stop anybody with relatively ordinary skills who might open the
file with say Notepad and notice a perfectly good CSV file a few bytes to
the right of something that looks like a password.

The other solution (as you mentioned) is to encrypt the file which would
stop most people as your app would the only one that could decrypt it. It
doesn't have to be time-consuming but obviously it would take some time.
Perhaps not much longer than it would to prompt the user for a password and
of course the users wouldn't stick the password on a post-it (tm) note on
their monitor.



"jonigr" <(E-Mail Removed)> wrote in message
news:FB4119E8-4913-4E2C-9B7A-(E-Mail Removed)...
>I wrote a simple VB.NET application that imports and edits CSV files.
>
> Now I'd like to "lock" the raw (pre-import) CSV files so these cannot be
> opened separately. It is not high-sensitive data, I just don't want folks
> to
> peek in the files.
>
> So time-consuming encryption is not necessary, just a simple
> password-to-open that I can program in my application so it internally
> opens
> the imported CSV file would be perfect, but I can't get it done. In fact
> it
> seems difficult to password-protect a CSV file in any way.
>
> The pre-import CSV's are delivered as ZIP's, so I thought about
> password-protecting the ZIP files and importing and unzipping these within
> my
> program, but this would seem much more challenging (if at all possible)
> especially for an inexperienced programmer like me.
>
> Any tips, pointers, ideas are highly appreciated. Thanks!



 
Reply With Quote
 
=?Utf-8?B?am9uaWdy?=
Guest
Posts: n/a
 
      25th Feb 2007
Much obliged Tom, very clear advice.

The csv + password method is just below minimum indeed.

Any encryption method perhaps you could point me to that would fit the bill?:

- CSV files
- speed over (extreme) security
- decrypt in VB.NET
- not (much) filesize increase

Thanks very much!

-joni

"Tom Leylan" wrote:

> The reason that you cannot password protect a CSV file is because by
> definition there is no place to store the password. It's a file of
> "comma-separated values" for that to be recognized by any program one can't
> arbitrarily declare a password is inside it somewhere.
>
> You have two standard solutions. One is to create your own file format
> which consists of a password field "plus" a csv file. Your app would know
> where the password is and can check it and it would know the offset where
> the CSV begins. Keep in mind that while this may stop the novice it
> wouldn't stop anybody with relatively ordinary skills who might open the
> file with say Notepad and notice a perfectly good CSV file a few bytes to
> the right of something that looks like a password.
>
> The other solution (as you mentioned) is to encrypt the file which would
> stop most people as your app would the only one that could decrypt it. It
> doesn't have to be time-consuming but obviously it would take some time.
> Perhaps not much longer than it would to prompt the user for a password and
> of course the users wouldn't stick the password on a post-it (tm) note on
> their monitor.
>
>
>
> "jonigr" <(E-Mail Removed)> wrote in message
> news:FB4119E8-4913-4E2C-9B7A-(E-Mail Removed)...
> >I wrote a simple VB.NET application that imports and edits CSV files.
> >
> > Now I'd like to "lock" the raw (pre-import) CSV files so these cannot be
> > opened separately. It is not high-sensitive data, I just don't want folks
> > to
> > peek in the files.
> >
> > So time-consuming encryption is not necessary, just a simple
> > password-to-open that I can program in my application so it internally
> > opens
> > the imported CSV file would be perfect, but I can't get it done. In fact
> > it
> > seems difficult to password-protect a CSV file in any way.
> >
> > The pre-import CSV's are delivered as ZIP's, so I thought about
> > password-protecting the ZIP files and importing and unzipping these within
> > my
> > program, but this would seem much more challenging (if at all possible)
> > especially for an inexperienced programmer like me.
> >
> > Any tips, pointers, ideas are highly appreciated. Thanks!

>
>
>

 
Reply With Quote
 
Tom Leylan
Guest
Posts: n/a
 
      25th Feb 2007
I'm not an expert on this stuff but you can check the
System.Security.Cryptography Namespace. You may prefer a symmetric
algorithm so you can encrypt/decrypt without a lot of fuss.

That said you can also just obscure the data by encoding it in Base64.
There are methods in the Convert Class you can use. It should be fast and
while somebody might recognize it as Base64 encoding the average user
probably wouldn't. I tried it out and successfully read a CSV, converted to
Base64 and wrote it out to a new file then read that file back in and wrote
out a standard CSV again. Whichever method you choose you would do well to
search the Internet as there are dozens of examples and a few complete
implementations that you could just download and use.

Personally I wouldn't get too concerned over the speed until it is
demonstrated to actually take too long. That might happen but if the
slowest encryption method (with the highest security) isn't noticeable on
the file sizes you have then any of the faster algorithms would obviously be
fine.

Hope this helps.

"jonigr" <(E-Mail Removed)> wrote in message
news:65A1BE47-C0AB-467F-8C94-(E-Mail Removed)...
> Much obliged Tom, very clear advice.
>
> The csv + password method is just below minimum indeed.
>
> Any encryption method perhaps you could point me to that would fit the
> bill?:
>
> - CSV files
> - speed over (extreme) security
> - decrypt in VB.NET
> - not (much) filesize increase
>
> Thanks very much!
>
> -joni
>
> "Tom Leylan" wrote:
>
>> The reason that you cannot password protect a CSV file is because by
>> definition there is no place to store the password. It's a file of
>> "comma-separated values" for that to be recognized by any program one
>> can't
>> arbitrarily declare a password is inside it somewhere.
>>
>> You have two standard solutions. One is to create your own file format
>> which consists of a password field "plus" a csv file. Your app would
>> know
>> where the password is and can check it and it would know the offset where
>> the CSV begins. Keep in mind that while this may stop the novice it
>> wouldn't stop anybody with relatively ordinary skills who might open the
>> file with say Notepad and notice a perfectly good CSV file a few bytes to
>> the right of something that looks like a password.
>>
>> The other solution (as you mentioned) is to encrypt the file which would
>> stop most people as your app would the only one that could decrypt it.
>> It
>> doesn't have to be time-consuming but obviously it would take some time.
>> Perhaps not much longer than it would to prompt the user for a password
>> and
>> of course the users wouldn't stick the password on a post-it (tm) note on
>> their monitor.
>>
>>
>>
>> "jonigr" <(E-Mail Removed)> wrote in message
>> news:FB4119E8-4913-4E2C-9B7A-(E-Mail Removed)...
>> >I wrote a simple VB.NET application that imports and edits CSV files.
>> >
>> > Now I'd like to "lock" the raw (pre-import) CSV files so these cannot
>> > be
>> > opened separately. It is not high-sensitive data, I just don't want
>> > folks
>> > to
>> > peek in the files.
>> >
>> > So time-consuming encryption is not necessary, just a simple
>> > password-to-open that I can program in my application so it internally
>> > opens
>> > the imported CSV file would be perfect, but I can't get it done. In
>> > fact
>> > it
>> > seems difficult to password-protect a CSV file in any way.
>> >
>> > The pre-import CSV's are delivered as ZIP's, so I thought about
>> > password-protecting the ZIP files and importing and unzipping these
>> > within
>> > my
>> > program, but this would seem much more challenging (if at all possible)
>> > especially for an inexperienced programmer like me.
>> >
>> > Any tips, pointers, ideas are highly appreciated. Thanks!

>>
>>
>>



 
Reply With Quote
 
Martin H.
Guest
Posts: n/a
 
      25th Feb 2007
Hello jonigr,

> Now I’d like to “lock” the raw (pre-import) CSV files so these cannot be
> opened separately. It is not high-sensitive data, I just don’t want folks to
> peek in the files.

You could ZIP them. ZIP archives also support password protection.

> The pre-import CSV’s are delivered as ZIP’s, so I thought about
> password-protecting the ZIP files and importing and unzipping these within my
> program, but this would seem much more challenging (if at all possible)
> especially for an inexperienced programmer like me.


The easy solution would be to call a DOS ZIP archiver (via Shell
function) and provide the required data (File name, archive name, password).

Best regards,

Martin
 
Reply With Quote
 
Jay B. Harlow [MVP - Outlook]
Guest
Posts: n/a
 
      25th Feb 2007
jonigr,
> The pre-import CSV’s are delivered as ZIP’s, so I thought about
> password-protecting the ZIP files and importing and unzipping these within
> my

Have you considered a .NET 3.0 "Package"? Aka an Office 2007 .xlsx file?

http://msdn.microsoft.com/msdnmag/is...s/default.aspx

http://msdn2.microsoft.com/en-us/lib...packaging.aspx

http://www.microsoft.com/downloads/d...displaylang=en


..NET 3.0 & Office 2007 are adopting the "Package" as a standard file format.
What is a "Package" you ask? Its little more then a specifically formatted
Zip file. In other words its a zip file that contains a specific structure &
some specific files. Office 2007 files are packages (zip files) that contain
XML documents.

What is .NET 3.0 you ask? .NET 3.0 is a full superset of .NET 2.0 that is
included with Windows Vista. .NET 2.0 programs run unaffected as .NET 3.0
adds new namespaces & types to existing .NET 2.0 installations.


I was under the impression, but have not verified it, that you can use the
System.IO.Packaging namespace to open a plain ZIP file. Something that I
will try this morning & report back on. If System.IO.Packaging cannot read
plain zip files, you should be able to use this converter to save the xls as
an xlsx file:

http://www.microsoft.com/downloads/d...displaylang=en


--
Hope this helps
Jay B. Harlow [MVP - Outlook]
..NET Application Architect, Enthusiast, & Evangelist
T.S. Bradley - http://www.tsbradley.net


"jonigr" <(E-Mail Removed)> wrote in message
news:FB4119E8-4913-4E2C-9B7A-(E-Mail Removed)...
>I wrote a simple VB.NET application that imports and edits CSV files.
>
> Now I’d like to “lock” the raw (pre-import) CSV files so these cannot be
> opened separately. It is not high-sensitive data, I just don’t want folks
> to
> peek in the files.
>
> So time-consuming encryption is not necessary, just a simple
> password-to-open that I can program in my application so it internally
> opens
> the imported CSV file would be perfect, but I can’t get it done. In fact
> it
> seems difficult to password-protect a CSV file in any way.
>
> The pre-import CSV’s are delivered as ZIP’s, so I thought about
> password-protecting the ZIP files and importing and unzipping these within
> my
> program, but this would seem much more challenging (if at all possible)
> especially for an inexperienced programmer like me.
>
> Any tips, pointers, ideas are highly appreciated. Thanks!


 
Reply With Quote
 
Spam Catcher
Guest
Posts: n/a
 
      25th Feb 2007
=?Utf-8?B?am9uaWdy?= <(E-Mail Removed)> wrote in
news:FB4119E8-4913-4E2C-9B7A-(E-Mail Removed):

> So time-consuming encryption is not necessary, just a simple
> password-to-open that I can program in my application so it internally
> opens the imported CSV file would be perfect, but I can Tt get it
> done. In fact it seems difficult to password-protect a CSV file in any
> way.


CSVs have no password protection so you'll need to implement some sort of
security layer.

How about zipping the file with a password. Unzip to read?

You can use something like SharpZipLib to compress (very easy to use).
 
Reply With Quote
 
=?Utf-8?B?am9uaWdy?=
Guest
Posts: n/a
 
      25th Feb 2007
Allow me to address all great advice in this one post.

In following the various leads I found KB article 301070 using
System.Security.Cryptography Namespace that Tom mentioned and has code ready.
I honestly didn't go in-depth but the fast encrypted file looks like absolute
total garbage. Great! More than enough to scare the hell out of my average
user, never mind the pro hackers.

I will look into the ZIP possibilities suggested, this could be an
alternative.

Jay, thanks for mentioning the "Package" format, totally new to me.

Thank y'all, this is a very helpful group. I mark this one as solved.

-joni

"Spam Catcher" wrote:

> =?Utf-8?B?am9uaWdy?= <(E-Mail Removed)> wrote in
> news:FB4119E8-4913-4E2C-9B7A-(E-Mail Removed):
>
> > So time-consuming encryption is not necessary, just a simple
> > password-to-open that I can program in my application so it internally
> > opens the imported CSV file would be perfect, but I canƒ Tt get it
> > done. In fact it seems difficult to password-protect a CSV file in any
> > way.

>
> CSVs have no password protection so you'll need to implement some sort of
> security layer.
>
> How about zipping the file with a password. Unzip to read?
>
> You can use something like SharpZipLib to compress (very easy to use).
>

 
Reply With Quote
 
 
 
Reply

Thread Tools
Rate This Thread
Rate This Thread:

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are Off


Similar Threads
Thread Thread Starter Forum Replies Last Post
Skip password protect files and open non protected files Boss Microsoft Excel Programming 5 30th Nov 2009 12:43 PM
Password Protect Files E.Q. Microsoft Access Getting Started 7 6th May 2008 03:07 PM
Is there any way to password protect my .ost files? =?Utf-8?B?TmFyZXNo?= Microsoft Outlook Discussion 1 11th Jan 2006 05:31 PM
password protect .csv files =?Utf-8?B?SmVubmlmZXIgQm9l?= Microsoft Excel Misc 1 1st Jun 2005 03:47 AM
password protect .htm files =?Utf-8?B?RENS?= Microsoft Frontpage 1 9th Feb 2005 03:31 AM


Features
 

Advertising
 

Newsgroups
 


All times are GMT +1. The time now is 11:20 PM.