Jump to content

My Messed Up Encryption Script...


mattd8752

Recommended Posts

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

Archived

This topic is now archived and is closed to further replies.

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.