I tried to create two funcions, one to encrypt params and another to decrypt them and I'm having a problem. Sometimes, when I try to decrypt any word / number, the decryption fails. Only sometimes, so, i don't know which can be the error. Going to post my functions if anyone wants to check them:
function url_base64_decode($str){
return base64_decode(strtr($str,
array(
'.' => '+',
'-' => '=',
'~' => '/'
)
));
}
function url_base64_encode($str){
return strtr(base64_encode($str),
array(
'+' => '.',
'=' => '-',
'/' => '~'
)
);
}
function mdecrypt($input){
$key = '4oF9B2NWXbmvIC5nNLLTbnmr5knkEBNBcrJt9m3xM3kjFyCZc3QAZbolXomtaIQSBBDDxxxAAAjTPV';
$input = trim(chop($this->url_base64_decode($input)));
$td = mcrypt_module_open ('tripledes', '', 'ecb', '');
$key = substr(md5($key),0,24);
$iv = mcrypt_create_iv (mcrypt_enc_get_iv_size ($td), MCRYPT_RAND);
mcrypt_generic_init ($td, $key, $iv);
$decrypted_data = mdecrypt_generic ($td, $input);
mcrypt_generic_deinit ($td);
mcrypt_module_close ($td);
return trim(chop($decrypted_data));
}
function mencrypt($input) {
$key = '4oF9B2NWXbmvIC5nNLLTbnmr5knkEBNBcrJt9m3xM3kjFyCZc3QAZbolXomtaIQSBBDDxxxAAAjTPV';
$key = substr(md5($key),0,24);
$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_deinit ($td);
mcrypt_module_close ($td);
return trim(chop($this->url_base64_encode($encrypted_data)));
}
I created a loop to encrypt numbers, and for example, the number 63 fails on decrypt:
- encrypted : pECnbC3qkwg- decrypted : 60
- encrypted : yOo70iZ7LKk- decrypted : 61
- encrypted : GRkGYosxwO4- decrypted : 62
- encrypted : AJGJzNep3YU- decrypted : +ÕϤȿß
- encrypted : wvT3n6F~xkU- decrypted : 64
- encrypted : 7p.gxcfLFcE- decrypted : 65
Anyone knows what should I do?
Thank you all