File Registrar

1999-04-15

Function
Calculates the SHA-1 digital signature message digests for files and stores them to a common data file. The messages digests are almost guaranteed to be unique for files of differing content.
Applications
Tracking child pornography and software piracy on the Internet when combined with a webcrawler.
Finding duplicate or non-matching files on a hard drive.
Current Features
Recursive directory registration.
Future Features
Duplicate file identification on a hard drive.
Determining differing files between mirrored directory trees.
Known Bugs
None.

Version

The current version is 1.0.

License


File Registrar
Version 1.0
Binary Code License

This binary code license ("License") contains rights and
restrictions associated with use of the accompanying
* File Registrar Version 1.0 *
software and documentation ("Software"). Read the License
carefully before using the Software.  By using the Software
you agree to the terms and conditions of this License.

1.  License to Distribute. Licensee is granted a royalty-free
right to reproduce and distribute the Software provided that
Licensee: (i) distributes the Software complete and
unmodified; (ii) does not distribute additional software
intended to replace any component(s) of the Software; (iii)
does not remove or alter any proprietary legends or notices
contained in the Software; (iv) only distributes the Program
subject to a license agreement that protects ANSER's
interests consistent with the terms contained herein; and
(v) agree to indemnify, hold harmless, and defend ANSER and
its licensors from and against any claims or lawsuits,
including attorneys' fees, that arise or result from the use
or distribution of the Program. 

2.  Restrictions. (a) Software is confidential copyrighted
information of ANSER and title to all copies is retained by
ANSER and/or its licensors. Except as otherwise provided by
law for purposes of decompilation of the Software, Licensee
shall not translate, reverse engineer, disassemble,
decompile, or otherwise attempt to derive the source code of
Software. Software may not be leased, assigned, or
sublicensed, in whole or in part, except as specifically
authorized in Section 1. (b) Software is not designed or
intended, and ANSER expressly disclaims any representations or
warranties (either expressed or implied), for use (i) in
online control of aircraft, air traffic, aircraft navigation
or aircraft communications; or (ii) in the design,
construction, operation or maintenance of any nuclear
facility.  

3.  Trademarks and Logos. This License does not authorize
Licensee to use any ANSER name, trademark or logo.

4.  Disclaimer of Warranty. Software is provided "AS IS,"
without a warranty of any kind. ALL EXPRESS OR IMPLIED
REPRESENTATIONS AND WARRANTIES, INCLUDING ANY IMPLIED
WARRANTY OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
PURPOSE OR NON-INFRINGEMENT, ARE HEREBY EXCLUDED.

5.  Limitation of Liability.   IN NO EVENT WILL ANSER OR ITS
LICENSORS BE LIABLE FOR ANY LOST REVENUE, PROFIT OR DATA, OR
FOR DIRECT, INDIRECT, SPECIAL, CONSEQUENTIAL, INCIDENTAL OR
PUNITIVE DAMAGES, HOWEVER CAUSED AND REGARDLESS OF THE
THEORY OF LIABILITY, RELATING TO THE USE, DOWNLOAD,
DISTRIBUTION OF OR INABILITY TO USE SOFTWARE, EVEN IF ANSER
HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.

6.  Termination.  Licensee may terminate this License at any
time by destroying all copies of Software. This License will
terminate immediately without notice from ANSER if Licensee
fails to comply with any provision of this License. Upon
such termination, Licensee must destroy all copies of
Software.

7.  Maintenance and Support.  No upgrades or support are to
be provided to Licensee under the terms of this License.

8.  Export Regulations. Software, including technical data,
is subject to U.S. export control laws, including the U.S.
Export Administration Act and its associated regulations,
and may be subject to export or import regulations in other
countries. Licensee agrees to comply strictly with all such
regulations and acknowledges that it has the responsibility
to obtain licenses to export, re-export, or import Software.
Software may not be downloaded, or otherwise exported or
re-exported (i) into, or to a national or resident of, Cuba,
Iraq,Iran, North Korea, Libya, Sudan, Syria or any country
to which the U.S.has embargoed goods; or (ii) to anyone on
the U.S. Treasury Department's list of Specially Designated
Nations or the U.S. Commerce Department's Table of Denial
Orders.

9.  Restricted Rights. Use, duplication or disclosure by the
United States government is subject to the restrictions as
set forth in the Rights in Technical Data and Computer
Software Clauses in DFARS 252.227-7013(c) (1) (ii) and FAR
52.227-19(c) (2) as applicable.

10. Governing Law. Any action related to this License will
be governed by West Virginia law and controlling U.S. federal
law. No choice of law rules of any jurisdiction will apply.

11. Severability. If any of the above provisions are held to
be in violation of applicable law, void, or unenforceable in
any jurisdiction, then such provisions are herewith waived
or amended to the extent necessary for the License to be
otherwise enforceable in such jurisdiction.   However, if in
ANSER's opinion deletion or amendment of any provisions of the
License by operation of this paragraph unreasonably
compromises the rights or increase the liabilities of ANSER or
its licensors, ANSER reserves the right to terminate the
License and refund the fee paid by Licensee, if any, as
Licensee's sole and exclusive remedy.

Installation and Execution

  1. Download FileRegistrar.zip.

  2. Extract FileRegistrar.jar from the zip file.

  3. Install Java on your computer if you do not already have it.

  4. If you are using Java 1.1 instead of Java 1.2, include the location of the downloaded JAR file in your CLASSPATH environment variable.

    Example:

         set classpath=%classpath%;J:\lib\FileRegistrar.jar
         

  5. For instructions, from the operating system command line prompt, run
         java -jar FileRegistrar.jar
         
    if you have Java 1.2 or
         java org.anser.proj.timc.app.agents.file.FileRegistrar
         
    if you have Java 1.1.

    
    FileRegistrar v1.0 (C) Copyright 1998 Analytic Services, Inc.
    
    Reads a file or a directory of files, calculates their SHA-1
    message digests, and stores the results in a text output file.
    If the output file already exists, it will append the new
    contents to the old.
    
    FileRegistrar accepts two arguments:
    1:  the name of the file or the directory of files to register
    2:  the name of the output file (defaults to the console)
    
    Options:
    +r:  recursively follow sub-directories
    +v:  verbose, print filenames scanned
    
    Example:
    java org.anser.proj.timc.app.agents.file.FileRegistrar +r +v C:\ out.txt
    
    
  6. You may wish to use a DOS batch file such as FileRegistrar.bat or Unix script to run the program.
    (Netscape users can right-click on the hyperlink and select "Save Link As...".)

    
      @echo off
    
      if not "%1"=="" goto BEGIN
    
      echo FileRegistrar.bat (1999-04-15)
      echo http://www.anserwv.org/projects/fileregistrar/
      echo.
      echo For each run, appends the output to FileRegistrar.out.
      echo Specify the target source file or directory as the argument.
      echo Use the +r option as the optional 2nd argument for recursive
      echo sub-directory traversal.
      echo.
      echo Example:  FileRegistrar.bat C:\images +r
    
      goto DONE
    
    :BEGIN
    
      java -jar FileRegistrar.jar +v %1 %2 FileRegistrar.out
    
    :DONE
    
      REM
    
    

Sample Output

The output is in the form of a text file with the data for one file on each line.

Columns

  1. The base-64 encoded SHA-1 digital signature message digest.
  2. The content length in bytes.
  3. The full path and name of the file.

YEkTEsiA8swDzIOEJQTUrFzP5iM= 000000000686 C:\TEMP\ACROREAD\ACROREAD.REG
5r+ZL4Tm0jMsy5F2QbUM7+KHy+Q= 000000740192 C:\TEMP\ACROREAD\ACROCORE.DLL
XIejo+vlewEndZqps235WNb/RXs= 000000031586 C:\TEMP\ACROREAD\FONTS\SY______.PFB
rYYiIszUCXn/LZcNB1CLmLZ3Voo= 000000040858 C:\TEMP\ACROREAD\FONTS\ZD______.PFB
ZeorMR0dfMb/m7v7wggqDhhEaSI= 000000007188 C:\TEMP\ACROREAD\FONTS\PFM\ZX______.MMM
wcAHohJtb+xn41Zt/rCGac427g8= 000000000684 C:\TEMP\ACROREAD\FONTS\PFM\ZD______.PFM
aodyG6XLYAJwhGR+ME8gOeEUjy4= 000000000683 C:\TEMP\ACROREAD\FONTS\PFM\ZX______.PFM
6Ukca8+9PllbwTXuMEVr1lwgdyk= 000000000684 C:\TEMP\ACROREAD\FONTS\PFM\ZY______.PFM
OFm5Xy6kLBslbVwftvQpYZCUVa4= 000000025981 C:\TEMP\ACROREAD\HELP\README_R.TXT
UqlyiVjdk3XGER6w+i1caL981Jo= 000000247808 C:\TEMP\ACROREAD\VIEWLIB.DLL

If the destination output file already exists, new data will be appended to the bottom of the file.

Feedback

Feature suggestions, bug reports, comments, and questions may be directed to David Wallace Croft.