phpbar.de logo

Mailinglisten-Archive

[php] mcrypt

[php] mcrypt

Martin Spuetz martin at spuetz.net
Don Mai 8 16:32:43 CEST 2008


Norbert Pfeiffer wrote:
>> Ich möchte einen String verschlüsseln und in einer Datenbank ablegen.
>> Später möchte ich diesen String wieder auslesen und entschlüsseln.
>> Geht das mit mcrypt?
>> Und wenn ja wie?
> nein! geht nicht,

Doch, geht schon:

function encrypt($key, $plain)
{
  $td = mcrypt_module_open("blowfish", "", "cfb", "");

  $iv = mcrypt_create_iv(mcrypt_enc_get_iv_size($td), MCRYPT_RAND);

  mcrypt_generic_init($td, $SECRET_KEY, $iv);
  $text = mcrypt_generic($td, $KLARTEXT);
  mcrypt_generic_deinit($td);

  return base64_encode($iv.$text);
}

function decrypt($key, $crypt)
{
  $crypt = base64_decode($crypt);

  $td = mcrypt_module_open("blowfish", "", "cfb", "");

  $ivsize = mcrypt_enc_get_iv_size($td);

  $iv = substr($crypt, 0, $ivsize);
  $crypt = substr($crypt, $ivsize);

  if ($iv == "" || $crypt == "") {
    return false;
  }

  mcrypt_generic_init($td, $key, $iv);

  $plain = mdecrypt_generic($td, $crypt);

  mcrypt_generic_deinit($td);

  return $plain;
}

Sollte funktioniert, hab ich aus einer Klasse rauskopiert.

Gruß,
Martin




php::bar PHP Wiki   -   Listenarchive