Quiero preguntar si mi código es seguro o no. Si esto no es seguro por favor dime la razón. Este código se mezcla de Rjindael-256, base64_encode y SHA-512.
function xencoder($input,$key) {
$salt = 'Q(i1V7X,k&_Ydk@8T5punQdL@S+Ih&kY6swz:)wg6n5!yOQ*q5iDtm^b49J#XTHB';
$key = substr(hash('sha512', base64_encode($key.$salt)), 0, 32);
$iv_size = mcrypt_get_iv_size(MCRYPT_RIJNDAEL_256, MCRYPT_MODE_ECB);
$iv = mcrypt_create_iv($iv_size, MCRYPT_RAND);
$output = base64_encode(mcrypt_encrypt(MCRYPT_RIJNDAEL_256, $key, $input, MCRYPT_MODE_ECB, $iv));
return $output;
}
function xdecoder($input,$key) {
$salt = 'Q(i1V7X,k&_Ydk@8T5punQdL@S+Ih&kY6swz:)wg6n5!yOQ*q5iDtm^b49J#XTHB';
$key = substr(hash('sha512', base64_encode($key.$salt)), 0, 32);
$iv_size = mcrypt_get_iv_size(MCRYPT_RIJNDAEL_256, MCRYPT_MODE_ECB);
$iv = mcrypt_create_iv($iv_size, MCRYPT_RAND);
$output = mcrypt_decrypt(MCRYPT_RIJNDAEL_256, $key, base64_decode($input), MCRYPT_MODE_ECB, $iv);
return $output;
}
function xhasher($input,$key) {
$output = strtoupper(hash('sha512',xencoder($input,$key)));
$output = substr($output,0,36);
$output = "^XH".$output."^";
return $output;
}
Por ejemplo, llamo a xhasher para cambiar la contraseña xhasher ("mypassword", "AUTH_PASSWORD") la salida será ^XH9586C75B1A098D3ACF97C6581E0CCB0C8CF8^