CroftSoft / Portfolio

File Registrar

This product was conceived of and implemented by David Wallace Croft for Analytic Services, Inc. while working on the Technology for Identifying Missing Children project. He later combined this with a web spider which would automatically locate and report child pornography images on the web.

This product may be downloaded and used under the terms of the license agreement below.

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.