mattd8752 Posted March 11, 2007 Share Posted March 11, 2007 So, I made a custom encryption method, but my decoder is not working proper. I am not sure where in, but the error is in compare. There is no actual error, but I am getting N (false) even when they are the same. Here is the script. <?php function encrypt($string){ $letter[A] = 43545; $letter[b] = 65116; $letter[C] = 21153; $letter[D] = 54425; $letter[E] = 64118; $letter[F] = 21654; $letter[G] = 55491; $letter[H] = 35554; $letter[i] = 96660; $letter[J] = 33266; $letter[K] = 96540; $letter[L] = 84884; $letter[M] = 65551; $letter[N] = 79931; $letter[O] = 40089; $letter[P] = 52216; $letter[Q] = 18992; $letter[R] = 76225; $letter[s] = 12559; $letter[T] = 99779; $letter[u] = 26881; $letter[V] = 46225; $letter[W] = 15523; $letter[X] = 62275; $letter[Y] = 46663; $letter[Z] = 34778; $letter[1] = 54601; $letter[2] = 34620; $letter[3] = 88455; $letter[4] = 44752; $letter[5] = 64632; $letter[6] = 67777; $letter[7] = 87718; $letter[8] = 79754; $letter[9] = 44744; $letter[0] = 43734; $curr = 0; $string = md5(trim($string)); $string = strtoupper($string); $length = strlen($string); while($curr < $length){ $a = $string{$curr}; $a = $letter[$a]; $loops = 0; $total = 0; while($loops < 5){ if($loops == 0){ $max = $a; }else{ $max = $a - $total; } $rand = rand(0, $max); $total = $total + $rand; if($loops != 4){ $enc .= $rand.","; }else{ $enc .= $max."."; } $loops++; } $curr++; } return $enc; } function compare($string, $crypt){$letter[A] = 43545; $letter[b] = 65116; $letter[C] = 21153; $letter[D] = 54425; $letter[E] = 64118; $letter[F] = 21654; $letter[G] = 55491; $letter[H] = 35554; $letter[i] = 96660; $letter[J] = 33266; $letter[K] = 96540; $letter[L] = 84884; $letter[M] = 65551; $letter[N] = 79931; $letter[O] = 40089; $letter[P] = 52216; $letter[Q] = 18992; $letter[R] = 76225; $letter[s] = 12559; $letter[T] = 99779; $letter[u] = 26881; $letter[V] = 46225; $letter[W] = 15523; $letter[X] = 62275; $letter[Y] = 46663; $letter[Z] = 34778; $letter[1] = 54601; $letter[2] = 34620; $letter[3] = 88455; $letter[4] = 44752; $letter[5] = 64632; $letter[6] = 67777; $letter[7] = 87718; $letter[8] = 79754; $letter[9] = 44744; $letter[0] = 43734; $letterb = array_flip($letter); $string = md5(trim($string)); $split = explode(".", $crypt); $size = sizeof($split); $x = 0; while($x < $size){ $data = explode(",", $split[$x]); $total = $data[0] + $data[1] + $data[2] + $data[3] + $data[4]; $char = $letterb[$total]; $ret .= $char; $x++; } if($ret == $string){ return "y"; }else{ return "n"; } } $crypt = encrypt("test"); $test = compare("test",$crypt); echo $test; ?> What I have figured out so far: Char is being set correctly, the letters VS numbers are encrypted correctly. Anyways, please help. I can't seem to find the error past that. Anyway, my result from that script is obviously n. I will use true and false, I just find it easier for testing purposes to use Y and N for now. Link to comment https://forums.phpfreaks.com/topic/42166-my-messed-up-encryption-script/ Share on other sites More sharing options...
Recommended Posts
Archived
This topic is now archived and is closed to further replies.