# Crypt::DES_EDE3 - Triple-DES EDE encryption/decryption - perldoc - [phpMan]

## NAME
    [Crypt::DES_EDE3](https://www.chedong.com/phpMan.php/perldoc/Crypt%3A%3ADESEDE3/markdown) - Triple-DES EDE encryption/decryption

## SYNOPSIS
        use [Crypt::DES_EDE3](https://www.chedong.com/phpMan.php/perldoc/Crypt%3A%3ADESEDE3/markdown);
        my $ede3 = [Crypt::DES_EDE3](https://www.chedong.com/phpMan.php/perldoc/Crypt%3A%3ADESEDE3/markdown)->new($key);
        $ede3->encrypt($block);

## DESCRIPTION
    *[Crypt::DES_EDE3](https://www.chedong.com/phpMan.php/perldoc/Crypt%3A%3ADESEDE3/markdown)* implements DES-EDE3 encryption. This is triple-DES encryption where an encrypt
    operation is encrypt-decrypt-encrypt, and decrypt is decrypt-encrypt-decrypt. This
    implementation uses *[Crypt::DES](https://www.chedong.com/phpMan.php/perldoc/Crypt%3A%3ADES/markdown)* to do its dirty DES work, and simply provides a wrapper around
    that module: setting up the individual DES ciphers, initializing the keys, and performing the
    encryption/decryption steps.

    DES-EDE3 encryption requires a key size of 24 bytes.

    You're probably best off not using this module directly, as the *encrypt* and *decrypt* methods
    expect 8-octet blocks. You might want to use the module in conjunction with *[Crypt::CBC](https://www.chedong.com/phpMan.php/perldoc/Crypt%3A%3ACBC/markdown)*, for
    example. This would be DES-EDE3-CBC, or triple-DES in outer CBC mode.

## USAGE
  $ede3 = [Crypt::DES_EDE3](https://www.chedong.com/phpMan.php/perldoc/Crypt%3A%3ADESEDE3/markdown)->new($key)
    Creates a new *[Crypt::DES_EDE3](https://www.chedong.com/phpMan.php/perldoc/Crypt%3A%3ADESEDE3/markdown)* object (really, a collection of three DES ciphers), and
    initializes each cipher with part of *$key*, which should be at least 24 bytes. If it's longer
    than 24 bytes, the extra bytes will be ignored.

    Returns the new object.

  $ede3->encrypt($block)
    Encrypts an 8-byte block of data *$block* using the three DES ciphers in an
    encrypt-decrypt-encrypt operation.

    Returns the encrypted block.

  $ede3->decrypt($block)
    Decrypts an 8-byte block of data *$block* using the three DES ciphers in a
    decrypt-encrypt-decrypt operation.

    Returns the decrypted block.

  $ede3->blocksize
    Returns the block size (8).

  $ede3->keysize
    Returns the key size (24).

## LICENSE
    [Crypt::DES_EDE3](https://www.chedong.com/phpMan.php/perldoc/Crypt%3A%3ADESEDE3/markdown) is free software; you may redistribute it and/or modify it under the same terms
    as Perl itself.

AUTHOR & COPYRIGHTS
    [Crypt::DES_EDE3](https://www.chedong.com/phpMan.php/perldoc/Crypt%3A%3ADESEDE3/markdown) is Copyright 2001 Benjamin Trott, <ben@rhumba.pair.com>. All rights reserved.

