FileCode 4.2
============


Contents
--------

1) Legal Stuff
2) Important notice for FileCode 3.0 and before, AND FileCode 4.0/4.1 users!
3) Introduction

4) Quick Start  <---- If you just want to start USING FileCode, go here next!

- Detailed use and functions of FileCode --

5) Basics of Passwords/Passcodes
6) Entering
     i) Passwords
    ii) Passcodes
7) Selecting Source Data
     i) Files
    ii) Clipboard
8) Selecting Target Directory
9) Drag and Drop
10) Command Line Options
11) Using the log

12) Miscellaneous Options
13) Other Information
14) History of FileCode and Conclusion


----------------------------------------------------------------
Section 1 - LEGAL STUFF (Please Read)
---------------------------------------------------

FILECODE 4.2 IS COPYRIGHT (C) 1998 MATTHEW BENNETT
ALL RIGHTS RESERVED. MATTHEW BENNETT IS THE AUTHOR OF FILECODE 4.2.

THE USER MUST ACCEPT THE FOLLOWING AGREEMENT:

DISCLAIMER:
"FILECODE 4.2 IS SUPPLIED AS IS. THE AUTHOR DISCLAIMS ALL WARRANTIES,
EXPRESSED OR IMPLIED, INCLUDING, WITHOUT LIMITATION, THE FITNESS FOR ANY
PURPOSE.  THE AUTHOR ASSUMES NO LIABILITY FOR DAMAGES, INCLUDING THAT OF
LOST OR DAMAGED DATA, BE IT DIRECT OR CONSEQUENTIAL, WHICH MAY RESULT FROM
THE USE OF FILECODE 4.2."

FILECODE 4.2 REMAINS THE INTELLECTUAL PROPERTY OF THE AUTHOR.

THE FILECODE 4.2 EXECUTABLE AND ACCOMPANYING FILES (INCLUDING THIS FILE)
MUST IN NO WAY BE ALTERED BY ANY MEANS, AND SO MUST REMAIN EXACT COPIES
OF THOSE RELEASED BY THE AUTHOR.

FILECODE 4.2 IS RELEASED AS FREEWARE, SO NO CHARGE MUST BE MADE FOR THE
FILES THEMSELVES.

FILECODE 4.2 MAY BE FREELY DISTRIBUTED ACCORDING TO THE ABOVE AGREEMENT.

Any trade or registered names mentioned in this text are hereby acknowledged
to be the property of their respective owners.

----------------------------------------------------------------
Section 2 - IMPORTANT NOTICE TO FILECODE 3.0 AND BEFORE AND FILECODE 4.0/4.1 USERS!!
---------------------------------------------------

Because of an upgrade of FileCode's internal alteration process, and of the generation of
more unique numbers from the passwords, ALL FILES ENCRYPTED PRIOR TO FILECODE 4.0 CANNOT BE
DECRYPTED BY FILECODE 4.2 (OR ANY LATER VERSIONS). Please use your older copy of FileCode
to decrypt them, and then re-encrypt them with FileCode 4.2. Sorry for any inconvenience,
but this was judged to be a necessary improvement.

***** <------ look!
Please also note that clipboard contents encrypted by FileCode 4.0 and 4.1 is NOT
COMPATIBLE with FileCode 4.2 (new modifications mean it can no longer decrypt old 4.0/4.1
clipboard text).
***** <------ look!

----------------------------------------------------------------
Section 3 - Introduction
---------------------------------------------------


Nothing like a good amount of waffling legal blurb and important notices to start things
off :)

FileCode 4.2 is the latest version of the *freeware*, powerful file encryption/decryption
utility. It contains many improvements and changes from version 3.0.

Basically, FileCode works by obtaining five numbers from your password (or two from your
passcode) which enable the program to encrypt a file. Providing these exact same numbers
are created again from the same password/passcode, then FileCode can reverse the process
and decrypt your files back to their original format. There's a variety of ways to select
your source data. These include selection by the standard Windows file dialog box,
selection by whole directory (either recursing it or not), drag and drop, clipboard and
command line options.  Remember, absolutely no reference to the correct code is stored
anywhere in the encrypted files, and so it cannot be worked out from the file itself.

Because of this, it means no-one (including myself!) can decrypt your files without the
correct password - but also means you'd be in trouble if you forgot your password. So what
happens if you accidentally mis-type your password during encryption, which you cannot
later use to decrypt the files back again? No problem... FileCode 4.2 now writes a log
file that includes all the passwords it's used on all the files. So, if you realise you've
forgotten or mis-typed your password, just check out the log.

I think I've put wwwaaayyyy too much of my time into programming FileCode (and I'm stupid
enough to release the whole thing as *freeware*?!), but hey =)


----------------------------------------------------------------
Section 4 - Quick Start
---------------------------------------------------


In a hurry to get started eh? Can't be bothered to read through a load of dull, boring
meaningless, and unhelpful text?...
..Well, I can't when I'm eventually forced to open the readme, so here's a quick start.

Note:	When you first start FileCode you'll be prompted to create a new log. Just follow
	the simple instructions to create it (even if you plan to disable it afterwards) -
	though remember, do NOT forget your log password!

1) Make sure "Easy code" is selected and enter in your password.
   Now, simply select either the "Encrypt" or "Decrypt" data option (Alt-E or Alt-D).

2) Select your source files.  If you want to select only one file, or only a selection of
   files, then press the "select individual file(s)" button.  If you want to encrypt (or
   decrypt) *all* files in a directory then press "select all files in directory" (what
   a surprise ;)  If you want to recurse any sub-directories in the source directory (in
   other words, if you want FileCode to encrypt all the files it possibly can, starting
   from this directory), just tick the box.

3) Select your target directory.  When you select your source file(s), the target
   directory is automatically set to the directory of your source file(s).  This means the
   source files themselves will be altered.  However, if you want to keep your source files
   as they were and have the altered files put in another directory, then select (or create)
   another target directory. If you want to do this, and have selected to recurse
   directories, then the "recreate source directories" option will pop up. Tick this if you
   want all the encrypted files to keep their original directory structure.

4) Create those targets! If you have "confirm code" checked, then FileCode will ask you to
   re-type your password. I would strongly recommend you have this checked if your password
   is hidden, or if you're a new user.  If your password is visible, make sure you at least
   check it's correct before you start.

That's it :) Everything should be fairly obvious how to use anyway - still, don't forget
to read on for other ways of using FileCode.  In fact, if you want an even quicker way of
encrypting/decrypting files, why not check out the "drag and drop" section? You want to
use the powerful encryption properties of FileCode for e-mail? You want to do it quickly
and easily? Then check out the "clipboard encryption/decryption" section!


----------------------------------------------------------------
Section 5 - Details of Passwords/Passcodes
---------------------------------------------------


Passwords/Passcodes must consist of the following pieces of information:

* Code Type (taken automatically from "encrypt" or "decrypt" if using Easy code)
* Code number A (primary), number B (secondary), number C-E (passwords only).

The code type is always the first character you type in the code box if you're using Raw or
String code types, or it's taken from whether you select "encrypt" or "decrypt" when using
the Easy code. It is either a '1' or a '2'.  The reverse code type that was used to encode
a file must be used to decode it back. Numbers B-E are used in the internal alteration
process.


----------------------------------------------------------------
Section 6 (i) - Passwords
---------------------------------------------------


Passwords are the default code sort selected by FileCode, and are known as "Easy Codes" or
as "String Codes". As mentioned in the section above, all passwords (and passcodes) need to
be used with a code type. This tells FileCode what way to alter the files. It's either
given at the start of your String or Raw code, or taken from what option you select when
using Easy code. The opposite code type used to encrypt a file must be used to decrypt it
back.

Easy codes are, as their subtle name hints, the easiest of the three to use. All you do for
these is just type in any password you want in the code box, then select either "encrypt"
or "decrypt" - and you're done :)

The only difference with String codes is that (instead of selecting your code type) you just
put a 1 or a 2 at the start of your password.
For example, a file encrypted by a String code of:

1aardvarks-o-plenty

can only be correctly decrypted by the String code:

2aardvarks-o-plenty

For both Easy code and String code, remember password case and spaces (they are allowed -
as 
is any character on your keyboard) must be typed in exactly the same each time.

After you give FileCode the code type, it will work out the other information from your
password itself.  Passwords are 'limited' to 8000 characters, but somehow I don't think
you'll need anything even remotely close to this ;)

Easy codes and String codes are both totally compatible. Just remember the Encrypt option
gives the password a code type of 1, and a decrypt option a code type of 2. So, a file
encrypted with an Easy code of "mypassword" can be decrypted with a string code of 
"2mypassword".


----------------------------------------------------------------
Section 6 (ii) - Passcodes
---------------------------------------------------


These are known by FileCode as "Raw Codes", and are really pretty pointless :P
Instead of allowing FileCode to work out the two numbers it needs from your password, here
you 'hand-feed' it the numbers.  The only real advantage to this is the fact that you
can have access to the full range of available numbers without typing in long passwords.
Still, all passwords generate a unique number set anyway, and the number size plays very
little part in the encryption anyway.  But hey :)

OK.. Passcodes take the form:

A!B!C

Where 'A' is the code type (1 or 2), 'B' is any number from -2147483648 to +2147483647
and 'C' is another number within the same range as 'B'.

So, once again, a file encoded by:

1!12345!54321

can only be decoded by:

2!12345!54321

Please note that is it not recommended that you set the 'B' number between -10 and 10, as
in some cases areas of the file may still be readable (obviously the file will still be
unusable if it is a program file).  Still, never use a 'B' number of 0, or the source will
remain unchanged.

Remember to ensure 'Raw Code' is selected before using Passcodes, otherwise it will be
treated as a string or easy password.


----------------------------------------------------------------
Section 7 (i) - Selecting Source Data (files)
---------------------------------------------------


As explained in the quick start section, you can select your source files in a variety of
ways.  However, the two obvious ways are by pressing "Select individual file(s)" (Alt-V)
or "Select all files in directory" (Alt-F), or as clipboard data, mentioned afterwards.

Selecting individual files will bring up a standard file-open box. You can either type or
select one file, or by holding down CONTROL you can click on multiple files.  To select a
range of files, click the first on, hold down SHIFT, and click the last one.  Press 'open'
to use select them and return to FileCode, or 'cancel' to forget it and go back. Please
note you can only select existing *files*, and not directories. Multiple directory
encryption/decryption is not currently supported.

If you want to select ALL files in a directory (or directories), you can use the other
option, and simply choose your directory. If you do not select the recurse option, only
the files in that directory's root will be used - any directories in it will be ignored. If
you want *everything* in the source directory to be encrypted/decrypted (including all
sub-directories) make sure you've got recurse directories selected.

If one file is selected, it will be shown by name in the source information box - otherwise 
the total number of files will be shown. If your recursing directories, then the number of
sub-directories will also be shown. By clicking on the source information box, you can use
the cursor keys to scroll the information if it is too big to fit in (if a very long path
and/or filename is selected for example).

There are two other ways of selecting source files - by the command line or by drag and
drop. See the relevant sections for details.


----------------------------------------------------------------
Section 7 (ii) - Selecting Source Data (clipboard)
---------------------------------------------------

This is perfect for e-mails. The advantages of using the clipboard as your source data is
that it's quick, simple, and keeps the original text layout. The encrypted text also
contains no "illegal" or undisplayable characters, so the mail software and servers will
have no problems reading/transferring it.

!IMPORTANT NOTE!

Some mail readers (such as Microsoft Internet Mail) automatically word-wrap the messages
*just before* they send them. This can lead to problems when being decrypted by the
recipient (as the format has been changed). However - this can be solved by getting
FileCode itself to word-wrap the text, so the mail software does not need to correct
anything. Just make sure "Wrap text before encrypting" is enabled, and that you've set the
wrap characters at to (preferably one less than) what your mail software wraps characters
at. 75 should be a safe number to use (and is very much recommended), but if you want to
check your mail software settings yourself, then in Microsoft Internet Mail you can find
out by going to format-->settings when in a new mail window. 

Please remember also that your recipient should *not* have a word-wrap lower than what
you've set yourself, or incorrect decryption may occur. Providing the default of 75
character wrap is used, there shouldn't be any problem. However, if you do find you're
having problems decrypting a message sent to you, simply disable word-wrap.

I know all that sounds a little complicated, but just leave the default settings and you'll
have no problems :)


Example:

Try decrypting the following plain text line of encrypted text with the EasyCode Decrypt
password "testpass" :

Zo)jo'Mql3_TUoig8:TosEx&=P7҈pK

Just select and copy the line, run FileCode and select EasyCode Decrypt, type in testpass
as the code, select clipboard plain text as the source, and create the target. Then just
paste the decrypted text back to read it.

Rich Text Format (RTF) text encryption/decryption is also supported - just remember to
select the correct option before encrypting or decrypting RTF.

Finally, please note that text encrypted/decrypted by the clipboard method is NOT
compatible with standard file encryption/decryption. For example if you pasted some
encrypted text into a file, saved it, and then tried to decrypt that file, it would not be
decrypted properly. Also, if you need to cut or paste *encrypted* text, try and keep to the
same program (like Microsoft Internet mail, NotePad or WordPad for example), as occasionally
some of the more obscure characters may be changed when pasting text from one type of
program to the next.


----------------------------------------------------------------
Section 8 - Selecting Target Directory
---------------------------------------------------


This, unsurprisingly, is not exactly tricky ;) This option is not available if you're
encrypting/decrypting from the clipboard. As said in the quick-start section, when you
select your source file(s), then the target directory will automatically be set to the
same directory as your source files are in. FileCode in this way assumes you will want to
directly alter your source files.  However, if you'd rather have the altered files placed
in another directory (leaving your source files unchanged) then select it ('Select',
Alt-S) or create a new one (err.. 'Create', Alt-A). If you've got recurse directories
selected, and the target directory is different from your source directory, then you'll
have the option to recreate the source directories in the target directory. This is
probably a good idea, as it keep the files in order and prevents any from being
over-written.

If you want to keep the source file's original date (when it was last modified) then
tick the corrisponding box. Please note however that because of the extra work that needs
to be done because of this, you may notice a drop in speed when processing many files.
Due apparently with limitations to the currently avaliable options with the C/C++ Win32 
API, I have been unable to get FileCode to change the date of directories, so I'm afriad
the original source directory(s) date cannot be re-created in the target. Still, I would 
hope this to be only a minor drawback.


----------------------------------------------------------------
Section 9 - Drag and Drop
---------------------------------------------------


Windows allows you to select files and 'drag' them by clicking on the file and holding
down the (usually) left mouse button while moving the mouse - hence 'dragging' the file.
So, to speed things up, wouldn't it be a good idea if you could just select your source
files, drag them onto the FileCode icon (either on the desktop as a shortcut or the 
filecode.exe itself as seen in Explorer or equivalent) and those files would instantly be
selected by FileCode?

Yup, well, I thought so too :)

Ha! All those smug little commercial programs that flash "drag and drop capability" about -
well, FileCode can do that as well now :D

By default (as usual), the directories of the files dragged in will be selected as the
target, but you can still change it as normal. You can drag a directory in as well - but
remember you can only drag *one* directory in. Any files or other directories with it will
be ignored.

If you prefer not to use the clipboard method of encrypting/decrypting e-mails (even though
it is probably easier), then you can try using this method:
1) Right-click on the desktop, select new-->text document
2) Give the new text file a name, double click it and write your message.
3) Save the file and close the text window
4) Drag the little notepad icon to FileCode
5) Type in your password and press "Create Target" (Alt-T)
6) Exit FileCode - and there you are - your message has been encoded :)

You can then attach it to your e-mail, and the receiver simply has to drag that message
onto their own FileCode icon, type in the correct password, create the target, and read!


----------------------------------------------------------------
Section 10 - Command Line Options
---------------------------------------------------


Do you run an automated process, probably during the night, that you'd like to include
file encryption/decryption in? Say, do you download FTP files and would like them
encrypted afterwards?

No problem - just get your schedule program to call up FileCode and give it all the
information it needs through the command line :)

Type filecode /? for a list of commands. You'll see:


FileCode 4.2 Command Line Options

/?					Display this help message
/s "c:\files"			Select Source directory
/f "file1.ext" "file2.ext"	Select source Files
/t "c:\encrypted"			Select Target directory
/p "1password"			Password/Passcode
/r					Raw code
/g					String code
/e					Easy code Encrypt
/d					Easy code Decrypt
/h					Hide code
/c					ReCurse directories
/n					Recreate New source directories in target
/k					Keep source file date(s)

If the target directory is not specified, then FileCode will assume you want  to over-write
your source files (the target directory will match the source directory). If the source
directory is not specified, then the directory FileCode is running in will be used. If no 
source files are specified, then ALL files in the source directory will be altered. Please
note that you cannot leave out source directory AND source files. If String Code or Raw
Code is not specified, then FileCode will default to Easy Code, and you will need to
include either the encrypt or decrypt option. If Hide Code is not specified, then the code
will be visible. FileCode will not recurse directories (or recreate source directories in
the target) or keep the source file date(s) by default.

..That just about says it all really. Here's some example command lines:

* Encrypt all files in c:\wibble with the String password 1aardvark
filecode /s "c:\wibble" /p "1aardvark"

* Decrypt myfile.txt in c:\mystuff with an Easy password of mypassword:
filecode /s "c:\mystuff" /f "myfile.txt" /p "mypassword" /d

* Encrypt thing1.exe and info.txt in c:\myfiles\area1 with an Easy password of password
and place the encrypted files in c:\encrypted:
filecode /s"c:\myfiles\area1" /f"thing1.exe" "info.txt" /t"c:\encrypted" /p"password" /e

* Decrypt stuff.zip in c:\windows with a raw code of 2!123!456, keep the original date and
hide the code:
filecode /s "c:\windows"  /f "stuff.zip" /p "2!123!456" /r /h /k

* Encrypt everything in c:\private with an Easy password of eyesonly and place them and
all the sub-directories in c:\encrypted:
filecode /s "c:\private" /t "c:\encrypted" /p "eyesonly" /d /c /n

Note that the spaces in-between commands is shown simply to makes things clear, and is not
necessary when actually entering the command line.  FileCode quits automatically when the
file alteration process is complete.

Please remember that (mainly for safety reasons) FileCode will not delete your source
files - even if the target directory is different.  If you want this then simply delete
them afterwards with your schedule program or by hand.

FileCode will automatically disable any messages (such as errors in source files) when
command line options are in use, to prevent FileCode blocking any other processes
happening while it waits for the OK to be pressed.

Please note also that LOGGING IS DISABLED for command line options. This is partially
because it would be expected that you'd have a record of what you were asking FileCode to
do anyway (either in the batch file or from your schedule program), and also because it's
quite possible there may be multiple copies of FileCode being run at the same time,
meaning logging would be disabled anyway.


----------------------------------------------------------------
Section 11 - Using the log
---------------------------------------------------


The use of the log is fairly simple, and (like most of FileCode) should be quite obvious
how to use from simply looking at the program =)

!NOTE!
It's not recommended that you run multiple copies of FileCode at the same time, as FileCode
will report an error trying to open the log file if it's already in use by another copy of
FileCode. This is not a problem when using command line options though, as the opening of
the log file is disabled (see the command line section). If FileCode does have a problem
opening the log, and you choose to ignore it, then the log button will just be disabled,
and the log file not updated.

If FileCode cannot find the log file (fclog.dat) then it'll ask you to either create a new
log, or specify the correct log location.  When creating a new log, please remember that
log password, as there's not much you can do about it afterwards, without just deleting the
log and starting again.

To view or clear the log, or to change your log password, just press the log button in the
main FileCode screen (you'll be prompted for your log password before you can access the
options).

The current log options are shown just below the status bar in the main FileCode dialog
box, so you can be sure you know what's being logged (or not). A (+P) at the end shows
passwords/passcodes are being logged too (recommended).

** Security Issues when using the log **

Because the log can contain all your passwords and file names, it is a very important file
and could cause a big security problem if it could be accessed by someone else. Because of
this, FileCode does it's best to increase the security of the file:

* It can be stored in any location, the location being encrypted in the filecode defaults
  file.
* The log itself is encrypted, and is NEVER decrypted back unless you wish to view it (text
  is encrypted automatically before being written to the log). Even then, the decrypted log
  is unattached to the main log, so no modifications can be made.
* The log file is made hidden and read-only.

However, there are a few points where the log file could be considered unsafe. Unlike any
other encrypted file produced by FileCode, the log *does* contain the correct decryption
password hidden in the file. This has to be done to allow FileCode itself to write correctly
to the file, and to check the user's password before the log screen. The FileCode program
could also be "hacked" to possibly by-pass the log password authenticating box.

Still, if FileCode is stored on a fairly safe computer (such as a home computer - I don't
think your little sister will be able to decrypt the log file ;) or the computer has fairly
high restrictions and/or security itself, then there shouldn't be a problem. Also, obviously
no-one can do anything if they can't find the log file itself - so if you're really worried
(though there really shouldn't be much need to be ;) then you can store the log separately on
a floppy disk, and specify (for example) "A:\" as the log directory. Turning off logging 
passwords/passcodes will obviously remove much of the security risks of the log as well.

I think for the majority of people, the safety of keeping a log file greatly outweighs the 
possible security hazards - but, just in case, don't say I didn't warn you ;)


----------------------------------------------------------------
Section 12 - Miscellaneous Options
---------------------------------------------------


As previously mentioned, your code can be hidden by simply checking the "hide code" box in
FileCode. This will show your code as a series of asterisks (*'s).  If you select
"confirm code" then FileCode will ask you to retype your password/passcode when you ask to
create a target.  This is to ensure the correct password/passcode is used, particularly if
you're not keeping a log - as it cannot be found from the file itself afterwards!  It is
possible to toggle "hide code" on and off, showing and hiding the code information.  The
'confirm code' box will mirror the code hide/visible options previously set. It will also
remind you of whether you've selected to encrypt or decrypt your files when using Easy
code.

All changes to these options that you make are automatically saved when you exit the
program.

All buttons and boxes in the main dialog area can be selected by pressing and holding alt
followed by the underlined letter on the button or box you want to select.  This is mainly
to allow experienced users to operate the program quickly.


----------------------------------------------------------------
Section 13 - Other Information
---------------------------------------------------


The largest single file FileCode can encrypt/decrypt is.. wait for it.. just over 4
gigabytes. I should hope this wouldn't be too much of a problem for the majority of users ;)
(If, for some bizarre reason, you *actually* needed to alter a file larger than this,
just find a nice little utility to split it up into smaller chunks...)

It's possible to encrypt a file more than once, and even with different passwords each
time. However, there is little reason to as one encryption is certainly secure enough, and
so the extra effort and possible confusion from doing this isn't really worth it. Still..
I just thought I'm mention it anyway.. :)

A few people have asked me how does FileCode compare to other file encryption utilities,
but I'm afraid all I can say is - I have no idea at all... FileCode uses an encryption
method totally unlike anything else - and it doesn't need any of this 128-byte stuff
either. It might be just because I've written this program myself, but I think files
encrypted by FileCode are safer than any files encrypted my anything else :) I have my
reasons for this, but if you'd like more info on the inner-workings of FileCode, then
e-mail me and I'll try and put your fears to rest ;)

FileCode is written mainly in C (with a healthy addition of C++ in parts) using notepad 
(wwaahhheeyyy!! But I had to switch over to WordPad when the source became too big to be
opened by it!) and was compiled using the excellent MinGW32 (you can thank the 
ridiculously small file size mainly to this compiler!)

As I've had a surprisingly large number of requests for MinGW32 info, you can get it at:

http://agnes.dida.physik.uni-essen.de/~janjaap/mingw32/

Whilst on the subject of WWW addresses, don't forget the *FileCode homepage*:

http://www.btinternet.com/~bennett/filecode.html

It'll contain the latest information on any FileCode 5.0's... though I'm fairly sure
FileCode 4.2 will be the last in the FileCode series - I've run out of ideas :)


******************************************* <---------

Please do feel free to e-mail me on bennett@btinternet.com with any questions, or
(pplleeaassseee nnnoooo ;) bug reports or suggestions.
I'd also be grateful for you to mail me just saying what you think of FileCode, so at least
I know people are using it :D

******************************************* <---------


----------------------------------------------------------------
Section 14 - History of FileCode and Conclusion
---------------------------------------------------


PPPHHEEEWWW!! At last - FileCode 4.2 is finished!! And I thought FileCode 3.0 was tricky ;)
Just *how* many hours have I put in to the FileCode? You wouldn't have thought so - after
all, all it does is play about with a file's bytes. Still, the TIMES I've spent looking for 
information on the Microsoft Support web site (how to get that "Browse for Folder" thing
working, and how to pre-select what directory it opens at took long enough ;) but still -
it's all done now :)

*You* try figuring out how to recurse directories, and rebuild them back somewhere else!

Having said that, I've enjoyed every minute of it (well.. almost ;) - as I hope you will
too.

Here's a brief, rather vague history of FileCode:

FileCode 0.0
Written in BASIC many years ago. All it did was allow you to type in something on the
screen, and it would print out the 'encrypted' version of your text. Humm...

FileCode 0.5
Written in Pascal, again, many years ago. It could just about encrypt files (using a
Passcode-type code only) but had an annoying bug that I just couldn't figure out that
only altered every-other byte in the file...

FileCode 1.0
First Windows version of FileCode, written in C.
You thought FileCode 2.5 was basic? You should have seen this... ;)

FileCode 2.0
A few good features added, including an enhanced (actually 50-100 times faster) encryption
engine, password option and the ability to use a standard Windows file-open box.

FileCode 2.5
First version to be released to the public. Still pretty basic, but hey - it worked:)
Still could only manage one file at a time though..

FileCode 3.0
Wow - what a difference :)
Many more features added - a lot of them suggested by users of FileCode 2.5 (such as the
ability to hide/show your code, and the command line options)
Multiple file encryptions/decryptions (at last!) and it looks cool(er) than before ;)

FileCode 4.0
Again, fuelled by ideas from other users (and addressing the guilt I had with not including
features I simply couldn't be bothered to figure out how to write;) The presumed final
FileCode is complete. Bugfixes included the ability for FileCode to recognise directories
with attributes other than normal (eliminating an annoying "error in file" message some
people were getting) and the ability to create a directory with sub-directories. The file
selection scan has been speeded up (it was doing the same thing twice), and the ability to
recurse directories (at last!) has been added. Once again, after many people pestering me
about "hey - what exactly is the point of this 1 and 2 stuff? Haven't you ever heard of
radio buttons?" I finally gave in and added the Easy code option, along with it's Encode
and Decode buttons. Just try and remember to check you've ticked the right one before you
press Create Target - eh? ;)
With one or two people a little stressed at the fact that they'd forgotten or mistyped
their password, and expected me to be able to.. erm.. do something about it ;) I've also
added the option that may well save the odd lost file here and there - the LOG! (Phew..
did THAT take a lot of coding ;)

FileCode 4.1
Minor fixes included stopping a clipboard memory leak, solved problems when encrypting/
decrypting read-only files and fixed a few problems where certain files weren't retaining
their original file attributes. The ablity to keep the source file's original date was
also added.

FileCode 4.2
Finally fixed an annoying clipboard encrypt/decrypt problem that meant some mail readers
weren't decrypting text properly.

A few things that *could* be added to FileCode, but that I really don't think are a good
idea anyway (otherwise I'd have put them in ;):

* OK, OK.. all these commercial programs have the ability to create nice, cute little
  "self-decrypting" exe's. But firstly, considering *everyone* should have a copy of
  FileCode <grin> what's the point? It just makes the files bigger (a pain for e-mails)
  and the fact that you don't really want to double-click your way through a load of
  files to decode them anyway... which brings me on to;

* Making little encrypted "archives" that store your files. Erm.. I suppose that wouldn't
  be too bad, but why not just get FileCode to encrypt all your files into their own
  directory, and zip them up? It's interesting to note that if you try and zip up a file
  encoded by FileCode, very little or no size reduction will be made. This shows just how
  well FileCode messes up the original file - as winzip can't find any repetitions in the
  file, so can't compress it...

So - those two are possible, but - In My Humble Opinion - they're not really needed...


I really can't believe I've just sat here and written/edited this lot..
I think I should get out more.. ;)
Do you think I use too many smilies in my writing?.... nnnaaaarrrrrr ;)


Well, I hope you find FileCode easy to use and useful :)


Matt

6:01PM - 28th July 1998
