Кто-нибудь знает, почему не работает этот php encrypt / decrypt?
Мы использовали это на нашем сайте, и это работало в основном. Но теперь мы сделали это сценарием командной строки, и он вообще перестал работать ...
Мы попытались закодировать ключ к utf8 и попытались удалить обрезку. Но оба не работают.
$e = new enc();
$pass = !isset($argv[1]) ? 'ill' : $argv[1];
$encPass = $e->_encrypt($pass);
$decPass = $e->_decrypt($encPass);
echo 'input: '. $pass . "\n";
echo 'encode: ' . $encPass . "\n";
echo 'decode: ' . $decPass;
class enc
{
/**
* Encrypt data using AES256
*
* @param string $data The plaintext
* @return string The encyrypted data
*/
function _encrypt($data)
{
$ivSize = mcrypt_get_iv_size(MCRYPT_RIJNDAEL_256, MCRYPT_MODE_ECB);
$iv = mcrypt_create_iv($ivSize, MCRYPT_RAND);
return mcrypt_encrypt(
MCRYPT_RIJNDAEL_256, "gw2iYt26Gw", trim($data), MCRYPT_MODE_ECB,
$iv
);
}
/**
* Decrypt data using AES256
*
* @param string $data The AES256 encrypted data
* @return string The decyrypted data
*/
function _decrypt($data)
{
$ivSize = mcrypt_get_iv_size(MCRYPT_RIJNDAEL_256, MCRYPT_MODE_ECB);
$iv = mcrypt_create_iv($ivSize, MCRYPT_RAND);
return trim(
mcrypt_decrypt(
MCRYPT_RIJNDAEL_256, "gw2iYt26Gw", trim($data),
MCRYPT_MODE_ECB, $iv
)
);
}
}
?>
EDIT:
Небольшое исправление для использования EncPass для расшифровки