Crypt::DES_PP - Perl extension for DES encryption


use Crypt::DES_PP;

    $des = Crypt::DES_PP->new ($key);
    $cipher = $des->encrypt ($plain);
    $plain = $des->decrypt ($cipher);
    $blocksize = $des->blocksize;
    $keysize = $des->keysize;


The Data Encryption Standard (DES), also known as Data Encryption Algorithm (DEA) is a semi-strong encryption and decryption algorithm.

The module is 100 % compatible to Crypt::DES but is implemented entirely in Perl. That means that you do not need a C compiler to build and install this extension.

The module implements the Crypt::CBC interface. You are encouraged to read the documentation for Crypt::CBC if you intend to use this module for Cipher Block Chaining.

The minimum (and maximum) key size is 8 bytes. Shorter keys will cause an exception, longer keys will get silently truncated. Data is encrypted and decrypted in blocks of 8 bytes.

The module implements the Ultra-Fast-Crypt (UFC) algorithm as found for example in the GNU libc. On the Perl side a lot has been done in order to make the module as fast as possible (function inlining, use integer, ...).

Note: For performance issues the source code for the module is first preprocessed by m4. That means that you need an m4 macro processor in order to hack on the sources. This is of no concern for you if you only want to use the module, the preprocessed output is always included in the distribution.


Nothing known. The module has not been tested on 64 bit architectures.


This implementation was written by Guido Flohr ( It is available under the terms of the Lesser GNU General Public License (LGPL) version 2 or - at your choice - any later version, see the file ``COPYING.LIB''.

The original C implementation of the Ultra-Fast-Crypt algorithm was written by Michael Glad ( and has been donated to the Free Software Foundation, Inc. It is covered by the GNU library license version 2, see the file ``COPYING.LIB''.


Crypt::CBC(3), Crypt::DES(3), perl(1), m4(1).