crc2pwd
-------

This is a program which can generate a password from a CRC-32 in an RA
2.x format user file.  It is configurable in that it allows your to limit
the search criteria which affects the 'trial and error' algorithm to
find a match via the fastest method - the vast majority of passwords can
be found by restricting the character set to just letters and numbers (the
default) and searching for smaller passwords first.

Note that crc2pwd will quit on the first valid matching CRC. This may not
be the actual password used since there is nothing innate in a CRC which
bestows any special qualities as to uniqueness for any string.	For this
reason the CRC-32 (and CRC-16) makes a poor string hashing algorith, and
certainly a poor choice for use as a pseudo-encryption algorithm.

Program usage:

	crc2pwd [/A] [/nn] [first last]

In order to work, crc2pwd must find a valid Remote Access 2.x format
userbase (USERS.BBS only required) in the current directory.

The /A and /nn switches provide some fine turning. By default, and in
order to expediate faster searching, crc2pwd restricts the assumed
character set to the latters A-Z and digits 0-9. It also searches only
for sequences 8 characters in length or less. /A tells crc2pwd to use
a full character set, which excludes only control characters. /nn (where
'nn' is a number from 1 to 64) varies the password search length.

Using /A or increasing /nn beyond 8 will lengthen the search process, in
most cases quite significantly.  It is recommended only doing this if the
default search cannot determine a matching character sequence.	If /nn is
set to a number less than 8, searching speed will be increased, but
at the cost of a lower probability of finding a match.

Supplying a first and last name is optional - if given the user base is
scanned for an EXACT match on the name, including case and spacing in
between.  If not given, crc2pwd scans each user in turn and attempts to
determine a password matching the password CRC.

The password table is written to standard output and is redirectable.
In order to ensure that you aren't tempted to reboot during the process,
crc2pwd will write every 65536th entry to the screen to the 'standard
error' (not usually redirectable) - you can determine the rate at which
the program is working by watching how the search string changes.


crc2pwd is written entirely in assembler and requires an 80386 CPU or
later.	It uses the 80386 specific instruction set for speed in
handling of 32-bit values and calculations in order to increase the
efficiency of the search algorithm.  If a lesser CPU is detected,
crc2pwd will issue an error and abort.

