crypt(1)


NAME

   crypt, mcrypt, mdecrypt - encrypt or decrypt files

SYNOPSIS

   mcrypt  [  -dLFubhvrzp ] [-a algorithm] [-c config_file] [-m mode] [-s keysize]
   [-o keymode] [-k key1 key2 ...]  [-f keyfile] [ filename ...  ]

   mdecrypt  [  -LFusbhvzp  ]  [-a algorithm]  [-c config_file]  [-m mode]
   [-s keysize]  [-o keymode]  [-k key1 key2 ...]  [-f keyfile] [ filename
   ...  ]

DESCRIPTION

   Mcrypt is a simple crypting program, a replacement  for  the  old  unix
   crypt(1).   When encrypting or decrypting a file, a new file is created
   with  the  extension  .nc  and  mode  0600.  The  new  file  keeps  the
   modification date of the original.  The original file may be deleted by
   specifying the -u parameter.  If no files are specified,  the  standard
   input is encrypted to the standard output.

   Mcrypt uses all the symmetric algorithms included in libmcrypt.

   crypt  is  a  small shell wrapper around mcrypt to emulate the old unix
   crypt command.  For more information run crypt --help !

HINTS

   By default, mcrypt , when one of these algorithms is specified, prompts
   something like:
    Enter passphrase: ...
    You  should then enter a passphrase long enough (512 characters is the
   maximum length). Now in order to encrypt the file,  The  passphrase  is
   transformed  using  the  specified  (or  the  default)  key  generation
   algorithm, and a random salt. The produced value is then  used  as  the
   key, which is fed to the algorithm.

   Algorithm  Vulnerability:  Most algorithms today are designed to resist
   in specific attacks.  None of them is proved not to  be  vulnerable  to
   some kind of attack not as yet known.

   Compression:  By  compressing your data before encryption you gain both
   in efficiency (faster encryption) and safety  of  your  data  (language
   redundancy  is  removed).  A drawback is that most compression programs
   will add specific headers in the compressed  file,  thus  making  known
   plaintext  attacks easier.  Compression after encryption is useless and
   may result to compressed files with longer size than the original.

   Error Recovery: There is some error recovery in mcrypt.  If  bytes  are
   removed  or lost from the file or stream in ECB, CBC and OFB modes, are
   impossible to recover, although CFB mode will recover.  If  some  bytes
   are altered then a full block of plaintext is affected in ECB mode, two
   blocks in CBC and CFB modes, but only the  corresponding  byte  in  OFB
   mode.   Mcrypt  uses  a 32 bit CRC to check for errors in the encrypted
   files.

   Extra security: For the very  paranoid,  if  mcrypt  is  executed  with
   superuser priviledges it ensures that no important data (keys etc.) are
   written to disk, as swap  etc.   Keep  in  mind  that  mcrypt  was  not
   designed to be a setuid program, so you shouldn't make it one.

   Do  not rely on the fact that an algorithm has a large key size, try to
   use long passphrases and try to make them unpredictable.

   All the block algorithms above support these modes of encryption:

   ECB: The Electronic CodeBook mode. It is the simplest mode to use  with
   a block cipher. Encrypts each block independently.

   CBC:  The  Cipher  Block Chaining mode. It is better than ECB since the
   plaintext is XOR'ed with the previous ciphertext.  A  random  block  is
   placed  as the first block so the same block or messages always encrypt
   to something different. (This is the default mode)

   CFB: The Cipher-Feedback Mode (in 8bit). This is  a  self-synchronizing
   stream cipher implemented from a block cipher.

   OFB:  The  Output-Feedback Mode (in 8bit). This is a synchronous stream
   cipher implemented from a block cipher. It is intended for use in noisy
   lines, because corrupted ciphertext blocks do not corrupt the plaintext
   blocks that follow. Insecure when used  to  encrypt  large  amounts  of
   data, so I recommend against using it.

   nOFB: The Output-Feedback Mode (in nbit). n Is the size of the block of
   the algorithm. This is a synchronous stream cipher implemented  from  a
   block  cipher. It is intended for use in noisy lines, because corrupted
   ciphertext blocks do not corrupt the plaintext blocks that follow.

   Encrypted files can be restored to their original form using mcrypt  -d
   or mdecrypt

   mdecrypt  takes  a  list of files on its command line and creates a new
   file for each file whose name ends with .nc by removing the ".nc" or by
   adding ".dc" to the end of the file name if .nc is not in the encrypted
   file's name.

OPTIONS

   -F --force
          Force output on standard output or input from stdin if that is a
          terminal.   By  default mcrypt will not output encrypted data to
          terminal, nor read encrypted data from it.

   -z --gzip
          Use gzip (if it exists in your system) to compress files  before
          encryption.   If specified at decryption time it will decompress
          these files.

   -p --bzip2
          Use bzip2 (if it exists in your system) to compress files before
          encryption.   If specified at decryption time it will decompress
          these files.

    --openpgp-z INT
          This  option  will  enable  compression  in  OpenPGP   (RFC2440)
          encrypted files.

   -d --decrypt
          Decrypt.

    --help
          Display a help screen and quit.

   -v --version
          Version. Display the version number and quit.

   -L --license
          Display the mcrypt's license and quit.

   -o --keymode MODE
          MODE  may  be  one of the keymodes listed by the --list-keymodes
          parameter.  It actually is the convertion to the key  before  it
          is  fed  to the algorithm.  It is recommended to leave it as is,
          if you do not know what it is.  However if you still want to use
          this  option,  you might want to use the 'hex' mode which allows
          you to specify the  key  in  hex  (and  no  convertion  will  by
          applied).

   -h --hash HASH_ALGORITHM
          HASH_ALGORITHM  may  be  one  of  the  algorithms  listed by the
          --list-hash parameter.  This is the digest that will be appended
          to the file to be encrypted, in order to detect file corruption.
          The default is the CRC32 checksum.

   -s --keysize SIZE
          SIZE is the algorithm's key size in bytes (not the size  of  the
          passphrase).  It  defaults  to  the maximum key supported by the
          algorithm. The maximum  key  sizes  of  the  algorithms  may  be
          obtained by the --list parameter. It is safe not to touch this.

   -g --openpgp
          This  option  will make mcrypt to use the OpenPGP (RFC2440) file
          format for encrypted files. This will make  files  encrypted  by
          mcrypt accessible from any OpenPGP compliant application.

   -b --bare
          No  important information like the algorithm, mode, the bit mode
          and the crc32 of the original file are written in the  encrypted
          file.   The  security  lies on the algorithm not on obscurity so
          this is NOT the default. This flag must also be  specified  when
          decrypting  a  bare  encrypted  file.   When  the  bare  flag is
          specified decryption and encryption  are  faster.  This  may  be
          usefull  when  using  mcrypt to encrypt a link or something like
          that.

   --flush
          Flushes  the  output  (ciphertext  or  plaintext)   immediately.
          Usefull if mcrypt is used with pipes.

   --time Prints some timing information (encryption speed etc.)

   --nodelete
          When  this option is specified mcrypt does not delete the output
          file, even if decryption failed. This is usefull if you want  to
          decrypt a corrupted file.

   -q --quiet
          Suppress some not critical warnings.

   -u --unlink
          Unlink   (delete)  the  input  file  if  the  whole  process  of
          encryption/decryption succeeds. This is not the default in order
          to use an external program to remove sensitive data.

    --list
          Lists all the algorithms currently supported.

    --list-keymodes
          Lists all the key modes currently supported.

    --list-hash
          Lists all the hash algorithms currently supported.

   -r --random
          Use  /dev/(s)random  instead of /dev/urandom. This may need some
          key input or mouse move to proceed.  If  your  system  does  not
          support  /dev/random  or /dev/urandom, a random gatherer will be
          used.

   -k --key KEY1 KEY2 ...
          Enter the keyword(s) via the command  line.  The  KEY(s)  is/are
          then used as keyword instead of prompting for them. Keep in mind
          that someone may see the command you are executing and  so  your
          keyword(s).

   -c --config FILE
          Use  the  specified configuration file. The default is .mcryptrc
          in your home directory. The format of the configuration file  is
          the same as the parameters. An example file is:
           algorithm safer+
           mode cbc
           key a_very_secret_one

   -f --keyfile FILE
          Enter  the  keyword(s) via a file. One keyword is read per line.
          The first keyword read is used for the first  file,  the  second
          for the second file etc. If the keywords are less than the files
          then the last keyword is used for the remaining. A limitation is
          that you cannot use the NULL (\0) and the Newline (\n) character
          in the key.  A solution  to  this  problem  is  to  specify  the
          keyword in hex mode.

   -m --mode MODE
          Mode  of  encryption  and  decryption. These modes are currently
          supported: ECB, CFB, OFB, nOFB,  CBC  and  STREAM.  CBC  is  the
          default.  Unless  the bare flag is specified there is no need to
          specify these modes for decryption.  For stream algorithms (like
          WAKE) mode should be STREAM.

   -a --algorithm ALGORITHM
          The  algorithm used to encrypt and decrypt. Unless the bare flag
          is specified there is no need to specify these for decryption.

          The algorithms currently supported are  shown  with  the  --list
          parameter.

EXAMPLES

   For  mcrypt  to  be  compatible  with the solaris des(1), the following
   parameters are needed: "mcrypt -a des  --keymode  pkdes  --bare  --noiv
   filename".

   For  mcrypt  to  be  compatible  with  the unix crypt(1), the following
   parameters are  needed:  "mcrypt  -a  enigma  --keymode  scrypt  --bare
   filename".

   To encrypt a file using a stream algorithm (eg. Arcfour), the following
   parameters are needed: "mcrypt -a arcfour --mode stream filename".

ENVIRONMENT

   Mcrypt uses the following environment variables:

   MCRYPT_KEY: to specify the key

   MCRYPT_ALGO: to specify the algorithm

   MCRYPT_MODE: to specify the algorithm's mode

   MCRYPT_KEY_MODE: to specify the key mode

   You can  use  these  instead  of  using  the  command  line  (which  is
   insecure), but note that only one key should be used in MCRYPT_KEY.

SEE ALSO

   des_crypt(3)

DIAGNOSTICS

   Exit status is normally 0; if an error occurs, exit status is something
   other than 0.

   Usage: mcrypt [-dLFubhvrzp] [-f keyfile] [-k key1 key2 ...]  [-m  mode]
   [-o keymode] [-a algorithm] [-c config_file] [filename ...]

AUTHORS

   Version    2.6.0    Copyright    (C)   1998,1999,2000,2001,2002   Nikos
   Mavroyanopoulos (nmav@gnutls.org).

   Thanks to all the people who reported problems  and  suggested  various
   improvements for mcrypt; who are too numerous to cite here.





Opportunity


Personal Opportunity - Free software gives you access to billions of dollars of software at no cost. Use this software for your business, personal use or to develop a profitable skill. Access to source code provides access to a level of capabilities/information that companies protect though copyrights. Open source is a core component of the Internet and it is available to you. Leverage the billions of dollars in resources and capabilities to build a career, establish a business or change the world. The potential is endless for those who understand the opportunity.

Business Opportunity - Goldman Sachs, IBM and countless large corporations are leveraging open source to reduce costs, develop products and increase their bottom lines. Learn what these companies know about open source and how open source can give you the advantage.





Free Software


Free Software provides computer programs and capabilities at no cost but more importantly, it provides the freedom to run, edit, contribute to, and share the software. The importance of free software is a matter of access, not price. Software at no cost is a benefit but ownership rights to the software and source code is far more significant.


Free Office Software - The Libre Office suite provides top desktop productivity tools for free. This includes, a word processor, spreadsheet, presentation engine, drawing and flowcharting, database and math applications. Libre Office is available for Linux or Windows.





Free Books


The Free Books Library is a collection of thousands of the most popular public domain books in an online readable format. The collection includes great classical literature and more recent works where the U.S. copyright has expired. These books are yours to read and use without restrictions.


Source Code - Want to change a program or know how it works? Open Source provides the source code for its programs so that anyone can use, modify or learn how to write those programs themselves. Visit the GNU source code repositories to download the source.





Education


Study at Harvard, Stanford or MIT - Open edX provides free online courses from Harvard, MIT, Columbia, UC Berkeley and other top Universities. Hundreds of courses for almost all major subjects and course levels. Open edx also offers some paid courses and selected certifications.


Linux Manual Pages - A man or manual page is a form of software documentation found on Linux/Unix operating systems. Topics covered include computer programs (including library and system calls), formal standards and conventions, and even abstract concepts.