Provided by: qfits-tools_6.2.0-9ubuntu1_amd64 bug

NAME

       fitsmd5 - Compute/update the DATAMD5 keyword/value

SYNOPSIS

       fitsmd5 [-u] [-s] [-a] <FITS files...>

DESCRIPTION

       fitsmd5  computes  the  MD5  signature of all data sections in a FITS file, and prints out the results on
       stdout. This command can optionally update the main FITS header in modifying the  value  of  the  DATAMD5
       key.

       This  command is useful to give a unique ID to a FITS file. The algorithm simply browses through all data
       sections in the input file and passes the data blocks to an MD5 hash function.  The  final  result  is  a
       128-bit signature that can be used to uniquely identify the file.

       This approach is meant to provide a tool to tag FITS files with unique IDs, it is not meant to be used as
       a checksum for file integrity (the CKSUM key is the solution for that), although it could be used in that
       spirit.  The  main  point  is  that only data sections are taken into account, leaving the possibility of
       changing the headers without affecting the data signature.

       MD5 hashing is cryptographically strong, which means the probability of having two different  FITS  files
       getting  the  same  ID  is almost zero. It should be good enough to assign a unique ID to several tens of
       thousands of frames. Since there is still a tiny but non-zero possibility that two different  files  will
       get  an  identical  key,  this approach is not recommended to tag very large numbers of files (typically:
       millions of them). If you do have a large database of FITS files, using a timestamp is usually  a  better
       approach.

       The MD5 signature is a good solution to tag a list of FITS files which might have originated from various
       sources  on  which  the  database  maintainer  has  no  control. Typically, calibration databases holding
       calibration frames for a given instrument, receive data from different actors who might not  be  in  sync
       with  unique file naming conventions. This command makes sure it is always possible to assign a unique ID
       to each frame.

       Notice that if the input FITS file has no data section, the returned MD5 key  will  be  non-zero  (it  is
       exactly  d41d8cd98f00b204e9800998ecf8427e).  This  signature also offers the interesting property that if
       two files have exactly the same pixels (bit-wise comparisons) they will get the same ID, this  is  useful
       e.g. for regression tests.

       If  you  want to produce files containing the DATAMD5 key in their main headers, you should use the qfits
       library, which always inserts this key. If you are  working  with  other  FITS-processing  software,  you
       should  allocate  an  empty  DATAMD5  placeholder and apply this command with the -u option to update the
       value.

       Notice that this command can also compute the MD5 sum of a complete file, not just its data sections (see
       -a option). In this mode, the command is completely identical to the GNU md5sum command, which is used to
       compute checksums on files. Input files in that case need not be FITS,  though  they  still  need  to  be
       regular files.

OPTIONS

       -u     Try to update the DATAMD5 keyword in the main header if present.

       -s     Silent mode: run without printing any message.

       -a     Compute the MD5 sum on all bits in the file. In this mode, the command behaves like the GNU md5sum
              command, to be used e.g. as a checksum. This option excludes all others.

FILES

       Input files to fitsmd5 shall comply with the FITS format, except when used with -a option.

                                                   01 Aug 2001                                        fitsmd5(1)