php - Two equal strings that are not equal -
i comparing 2 strings php. sure strings equal because have echoed them on webpage, comparison returns "bad".
one of strings being compared formerly encrypted via aes-256 , stored via cookie.
cookie value: _uid=yjuzi3kzi+yrmkay9h2+k0bl+374u5jleyf7bslinfo=:mjsahc8qjx5upf0p8gpunkcziezobzbglrszgjidqx4=
encryption function:
<?php // aes 256 function aes($a,$b,$c) { switch($a){ case 1: $d="awkwardp_general";$e="xjoiw4rifo5jw4"; $f=mysqli_connect("localhost",$d,$e,"awkwardp_main") or die(mysqli_error($f)); $g=mcrypt_get_iv_size(mcrypt_rijndael_128,mcrypt_mode_cbc); $h=mcrypt_create_iv($g,mcrypt_dev_urandom); $i="value"; $j="keys"; $k=array(); $l=0; $m="select ".$i." `".$j."`"; $n=mysqli_query($f,$m) or die(mysqli_error($f)); while($o=mysqli_fetch_array($n)){ $k[$l]=$o[$l]; $l++; } $p=strlen($k[$b]); $q=mcrypt_encrypt(mcrypt_rijndael_128,$k[$b],$c,mcrypt_mode_cbc,$h); $q=base64_encode($h.$q); return $q; break; case 2: $d="awkwardp_general";$e="xjoiw4rifo5jw4"; $f=mysqli_connect("localhost",$d,$e,"awkwardp_main") or die(mysqli_error($f)); $g=mcrypt_get_iv_size(mcrypt_rijndael_128,mcrypt_mode_cbc); $i="value"; $j="keys"; $k=array(); $l=0; $m="select ".$i." `".$j."`"; $n=mysqli_query($f,$m) or die(mysqli_error($f)); while($o=mysqli_fetch_array($n)){ $k[$l]=$o[$l];$l++; } $p=strlen($k[$b]); $q=base64_decode($c); $r=substr($q,0,$g); $s=substr($q,$g); $t=mcrypt_decrypt(mcrypt_rijndael_128,$k[$b],$s,mcrypt_mode_cbc,$r); return $t; break; default: } } ?> comparison script:
<?php $value = explode(":",$_cookie['_uid']); $_server['remote_addr'] == aes(2,1,$value[0]) ? printf("good") : printf("bad"); ?> can tell me problem is?
your problem because of hidden spaces. remove them use trim(), e.g.
$_server['remote_addr'] == trim(aes(2,1, trim($value[0]))) //^^^^ ^^^^ see here
Comments
Post a Comment