note 69782 modified in ref.mcrypt by danbrown

From: Date: Mon, 13 Dec 2010 16:22:25 +0000
Subject: note 69782 modified in ref.mcrypt by danbrown
References: 1  Groups: php.notes 
Request: Send a blank email to php-notes+get-174854@lists.php.net to get a copy of this message
For those of you that need to use PKCS#5 padding, the mcrypt API's for PHP do not support it. However, you can DIY using the following: <?php function encrypt_something($input) { $size = mcrypt_get_block_size('des', 'ecb'); $input = pkcs5_pad($input, $size); $key = 'YOUR SECRET KEY HERE'; $td = mcrypt_module_open('des', '', 'ecb', ''); $iv = mcrypt_create_iv (mcrypt_enc_get_iv_size($td), MCRYPT_RAND); mcrypt_generic_init($td, $key, $iv); $data = mcrypt_generic($td, $input); mcrypt_generic_deinit($td); mcrypt_module_close($td); $data = base64_encode($data); return $data; } function pkcs5_pad ($text, $blocksize) { $pad = $blocksize - (strlen($text) % $blocksize); return $text . str_repeat(chr($pad), $pad); } function pkcs5_unpad($text) { $pad = ord($text{strlen($text)-1}); if ($pad > strlen($text)) return false; if (strspn($text, chr($pad), strlen($text) - $pad) != $pad) return false; return substr($text, 0, -1 * $pad); } ?> --was-- For those of you that need to use PKCS#5 padding, the mcrypt API's for PHP do not support it. However, you can DIY using the following: <? function encrypt_something($input) { $size = mcrypt_get_block_size('des', 'ecb'); $input = pkcs5_pad($input, $size); $key = 'YOUR SECRET KEY HERE'; $td = mcrypt_module_open('des', '', 'ecb', ''); $iv = mcrypt_create_iv (mcrypt_enc_get_iv_size($td), MCRYPT_RAND); mcrypt_generic_init($td, $key, $iv); $data = mcrypt_generic($td, $input); mcrypt_generic_deinit($td); mcrypt_module_close($td); $data = base64_encode($data); return $data; } function pkcs5_pad ($text, $blocksize) { $pad = $blocksize - (strlen($text) % $blocksize); return $text . str_repeat(chr($pad), $pad); } function pkcs5_unpad($text) { $pad = ord($text{strlen($text)-1}); if ($pad > strlen($text)) return false; if (strspn($text, chr($pad), strlen($text) - $pad) != $pad) return false; return substr($text, 0, -1 * $pad); } ?> http://php.net/manual/en/ref.mcrypt.php

« previous php.notes (#174854) next »