PHP: Encryption class for encrypting credit card numbers


class daveCrypto
{

  var $td;

  function daveCrypto($key = '%^$@()^ikjugv8765d%^7c(*(CIUJCX*icIUYTXicjghcytx654&*Guibg098UIBV{PF)*E', $iv = false, $algorithm = 'tripledes', $mode = 'ecb')
  {

    if(extension_loaded('mcrypt') === FALSE)
    {
      $prefix = (PHP_SHLIB_SUFFIX == 'dll') ? 'php_' : '';
      dl($prefix . 'mcrypt.' . PHP_SHLIB_SUFFIX) or die('mcrypt module cannot be loaded');
    }

    if($mode != 'ecb' && $iv === false)
    {
      die('initialization vector not specified');
    }

    $this->td = mcrypt_module_open($algorithm, '', $mode, '') ;

    $random_seed = strstr(PHP_OS, "WIN") ? MCRYPT_RAND : MCRYPT_DEV_RANDOM;

    $iv = ($iv === false) ? mcrypt_create_iv(mcrypt_enc_get_iv_size($this->td), $random_seed) : substr($iv, 0, mcrypt_enc_get_iv_size($this->td));

    $expected_key_size = mcrypt_enc_get_key_size($this->td);

    $key = substr(md5($key), 0, $expected_key_size);

    mcrypt_generic_init($this->td, $key, $iv);
  }

etc...


click here to add a comment