 |
LV. Mcrypt
mcrypt,
, DES, TripleDES, Blowfish
( ), 3-WAY, SAFER-SK64, SAFER-SK128, TWOFISH, TEA, RC2
GOST CBC, OFB, CFB ECB. RC6 IDEA,
"non-free". Mcrypt
. libmcrypt-2.2.x, mcrypt
(mcrypt_cfb(), mcrypt_cbc(),
mcrypt_ecb() mcrypt_ofb()) , MCRYPT_ENCRYPT MCRYPT_DECRYPT,
.
1. input- TripleDES 2.2.x ECB
<?php
$key = "this is a very secret key";
$input = "Let us meet at 9 o'clock at the secret place.";
$encrypted_data = mcrypt_ecb (MCRYPT_3DES, $key, $input, MCRYPT_ENCRYPT);
?> |
|
,
$encrypted_data. libmcrypt 2.4.x 2.5.x,
, .
2. input- TripleDES 2.4.x ECB
<?php
$key = "this is a very secret key";
$input = "Let us meet at 9 o'clock at the secret place.";
$td = mcrypt_module_open ('tripledes', '', 'ecb', '');
$iv = mcrypt_create_iv (mcrypt_enc_get_iv_size ($td), MCRYPT_RAND);
mcrypt_generic_init ($td, $key, $iv);
$encrypted_data = mcrypt_generic ($td, $input);
mcrypt_generic_end ($td);
?> |
|
, $encrypted_data. .
mcrypt_module_open().
mcrypt.
libmcrypt 2.4.x ,
: CAST, LOKI97, RIJNDAEL, SAFERPLUS,
SERPENT, : ENIGMA (crypt), PANAMA, RC4
WAKE. libmcrypt 2.4.x nOFB.
libmcrypt-x.x.tar.gz
. PHP --with-mcrypt, . , libmcrypt
--disable-posix-threads. .
Mcrypt (CBC, OFB, CFB
ECB). libmcrypt-2.4.x ,
- nOFB STREAM.
,
.
Applied Cryptography by Schneier (ISBN 0-471-11709-9). MCRYPT_MODE_ECB (electronic codebook/ )
, .
, ECB .
MCRYPT_MODE_CBC (cipher block chaining)
; , ECB.
MCRYPT_MODE_CFB (cipher feedback) -
, .
MCRYPT_MODE_OFB (output feedback, 8bit) CFB,
, . (
8- ), .
MCRYPT_MODE_NOFB (output feedback, nbit) OFB,
, .
MCRYPT_MODE_STREAM - WAKE RC4.
, mcrypt.
. mcrypt.h.
mcrypt-2.2.x API : PHP MCRYPT_ciphername.
libmcrypt-2.4.x libmcrypt-2.5.x API ,
mcrypt_module_open().
MCRYPT_3DES MCRYPT_ARCFOUR_IV ( libmcrypt > 2.4.x)
MCRYPT_ARCFOUR ( libmcrypt > 2.4.x) MCRYPT_BLOWFISH
MCRYPT_CAST_128 MCRYPT_CAST_256 MCRYPT_CRYPT
MCRYPT_DES MCRYPT_DES_COMPAT ( libmcrypt > 2.2.x)
MCRYPT_ENIGMA ( libmcrypt > 2.4.x, MCRYPT_CRYPT)
MCRYPT_GOST MCRYPT_IDEA (non-free/ )
MCRYPT_LOKI97 ( libmcrypt > 2.4.x) MCRYPT_MARS ( libmcrypt > 2.4.x, non-free)
MCRYPT_PANAMA ( libmcrypt > 2.4.x)
MCRYPT_RIJNDAEL_128 ( libmcrypt > 2.4.x)
MCRYPT_RIJNDAEL_192 ( libmcrypt > 2.4.x)
MCRYPT_RIJNDAEL_256 ( libmcrypt > 2.4.x)
MCRYPT_RC2 MCRYPT_RC4 ( libmcrypt > 2.2.x)
MCRYPT_RC6 ( libmcrypt > 2.4.x)
MCRYPT_RC6_128 ( libmcrypt > 2.2.x)
MCRYPT_RC6_192 ( libmcrypt > 2.2.x)
MCRYPT_RC6_256 ( libmcrypt > 2.2.x)
MCRYPT_SAFER64 MCRYPT_SAFER128 MCRYPT_SAFERPLUS ( libmcrypt > 2.4.x)
MCRYPT_SERPENT( libmcrypt > 2.4.x) MCRYPT_SERPENT_128 ( libmcrypt > 2.2.x)
MCRYPT_SERPENT_192 ( libmcrypt > 2.2.x)
MCRYPT_SERPENT_256 ( libmcrypt > 2.2.x)
MCRYPT_SKIPJACK ( libmcrypt > 2.4.x)
MCRYPT_TEAN ( libmcrypt > 2.2.x)
MCRYPT_THREEWAY MCRYPT_TRIPLEDES ( libmcrypt > 2.4.x)
MCRYPT_TWOFISH ( mcrypt 2.x mcrypt > 2.4.x )
MCRYPT_TWOFISH128 (TWOFISHxxx 2.x, 2.4.x)
MCRYPT_TWOFISH192 MCRYPT_TWOFISH256 MCRYPT_WAKE ( libmcrypt > 2.4.x)
MCRYPT_XTEA ( libmcrypt > 2.4.x)
( CFB OFB) ( CBC)
/initialization vector (IV) .
IV /.
, ,
, (, MD5- ).
IV (.
9.3 Applied Cryptography by Schneier (ISBN 0-471-11709-9) ).
- mcrypt_cbc - / CBC
- mcrypt_cfb - / CFB
- mcrypt_create_iv - (IV)
- mcrypt_decrypt - crypttext
- mcrypt_ecb - / ECB mode
- mcrypt_enc_get_algorithms_name
- mcrypt_enc_get_block_size
- mcrypt_enc_get_iv_size IV
- mcrypt_enc_get_key_size keysize/
- mcrypt_enc_get_modes_name
- mcrypt_enc_get_supported_key_sizes
- mcrypt_enc_is_block_algorithm_mode - ,
- mcrypt_enc_is_block_algorithm - ,
- mcrypt_enc_is_block_mode - ,
- mcrypt_enc_self_test
- mcrypt_encrypt -
- mcrypt_generic_deinit
- mcrypt_generic_end
- mcrypt_generic_init ,
- mcrypt_generic
- mcrypt_get_block_size -
- mcrypt_get_cipher_name -
- mcrypt_get_iv_size IV, /
- mcrypt_get_key_size -
- mcrypt_list_algorithms -
- mcrypt_list_modes -
- mcrypt_module_close - mcrypt-
- mcrypt_module_get_algo_block_size
- mcrypt_module_get_algo_key_size keysize
- mcrypt_module_get_supported_key_sizes keysizes
- mcrypt_module_is_block_algorithm_mode - , ,
- mcrypt_module_is_block_algorithm ,
- mcrypt_module_is_block_mode - , ,
- mcrypt_module_open
- mcrypt_module_self_test
- mcrypt_ofb - / OFB
- mdecrypt_generic
|  |