Hello and welcome to our community! Is this your first visit?
Register
Enjoy an ad free experience by logging in. Not a member yet? Register.
Results 1 to 5 of 5
  1. #1
    New to the CF scene
    Join Date
    Mar 2009
    Posts
    2
    Thanks
    0
    Thanked 0 Times in 0 Posts

    Unhappy PHP encrypt/decrypt function help

    hello dear friends , i have a problem with some php encryption/decryption case .

    i have some messed up algorithm files which were originally from some other program but i would like to use for encrypting/decrypting codes .


    Encrypt.php
    Code:
       
       $key_length=0;
       $all_bin_chars="";
       $cipher_data="";
        
       for($i=0;$i<strlen($plain_data);$i++){
        $p=substr($plain_data,$i,1);
        $k=substr($key,$key_length,1);
        $key_length++;
        
        if($key_length>=strlen($key)){
            $key_length=0;
        }
        
        $dec_chars=ord($p)^ord($k);
        $dec_chars=$dec_chars + strlen($key);
        $bin_chars=decbin($dec_chars);
        
        while(strlen($bin_chars)<8){
            $bin_chars="0".$bin_chars;
        }
            
        $all_bin_chars=$all_bin_chars.$bin_chars;
        
       }
        
       $m=0;
    
       for($j=0;$j<strlen($all_bin_chars);$j=$j+4){
        $four_bit=substr($all_bin_chars,$j,4);     
        $four_bit_dec=bindec($four_bit);
    
        $decimal_value=$four_bit_dec * 4 + $m;
    
        $base64_value=dectobase64($decimal_value);
        $cipher_data=$cipher_data.$base64_value;
        $m++;
        
        if($m>3){
            $m=0;
        }
       }
       
       return $cipher_data;
    }        
    
    function dectobase64($decimal_value){
    
       switch($decimal_value){
        case 0: $base64_value="A";break;
        case 1: $base64_value="B";break;
        case 2: $base64_value="C";break;
        case 3: $base64_value="D";break;
        case 4: $base64_value="E";break;
        case 5: $base64_value="F";break;
        case 6: $base64_value="G";break;
        case 7: $base64_value="H";break;
        case 8: $base64_value="I";break;
        case 9: $base64_value="J";break;
        case 10: $base64_value="K";break;
        case 11: $base64_value="L";break;
        case 12: $base64_value="M";break;
        case 13: $base64_value="N";break;
        case 14: $base64_value="O";break;
        case 15: $base64_value="P";break;
        case 16: $base64_value="Q";break;
        case 17: $base64_value="R";break;
        case 18: $base64_value="S";break;
        case 19: $base64_value="T";break;
        case 20: $base64_value="U";break;
        case 21: $base64_value="V";break;
        case 22: $base64_value="W";break;
        case 23: $base64_value="X";break;
        case 24: $base64_value="Y";break;
        case 25: $base64_value="Z";break;
        case 26: $base64_value="a";break;
        case 27: $base64_value="b";break;
        case 28: $base64_value="c";break;
        case 29: $base64_value="d";break;
        case 30: $base64_value="e";break;
        case 31: $base64_value="f";break;
        case 32: $base64_value="g";break;
        case 33: $base64_value="h";break;
        case 34: $base64_value="i";break;
        case 35: $base64_value="j";break;
        case 36: $base64_value="k";break;
        case 37: $base64_value="l";break;
        case 38: $base64_value="m";break;
        case 39: $base64_value="n";break;
        case 40: $base64_value="o";break;
        case 41: $base64_value="p";break;
        case 42: $base64_value="q";break;
        case 43: $base64_value="r";break;
        case 44: $base64_value="s";break;
        case 45: $base64_value="t";break;
        case 46: $base64_value="u";break;
        case 47: $base64_value="v";break;
        case 48: $base64_value="w";break;
        case 49: $base64_value="x";break;
        case 50: $base64_value="y";break;
        case 51: $base64_value="z";break;
        case 52: $base64_value="0";break;
        case 53: $base64_value="1";break;
        case 54: $base64_value="2";break;
        case 55: $base64_value="3";break;
        case 56: $base64_value="4";break;
        case 57: $base64_value="5";break;
        case 58: $base64_value="6";break;
        case 59: $base64_value="7";break;
        case 60: $base64_value="8";break;
        case 61: $base64_value="9";break;
        case 62: $base64_value="+";break;
        case 63: $base64_value="/";break;
        case 64: $base64_value="=";break;
        default: $base64_value="a";break;
       }
       
       return $base64_value;
    }


    Decrypt.php
    Code:
    <?php
    
    
    function changedataout($cipher_data,$key){
    
    
       $m=0;
       $all_bin_chars="";
        
       for($i=0;$i<strlen($cipher_data);$i++){
        $c=substr($cipher_data,$i,1);             // c = ciphertext
        $decimal_value=base64todec($c);           //convert to decimal value
        
        $decimal_value=($decimal_value - $m) / 4; //substract by m where m=0,1,2,or 3 then divide by 4
        
        $four_bit=decbin($decimal_value);
        
        while(strlen($four_bit)<4){
            $four_bit="0".$four_bit;
        }
        
        $all_bin_chars=$all_bin_chars.$four_bit;
        $m++;
        
        if($m>3){
            $m=0;
        }
       }
        
       $key_length=0;
       $plain_data="";
        
       for($j=0;$j<strlen($all_bin_chars);$j=$j+8){
        $c=substr($all_bin_chars,$j,8);
        $k=substr($key,$key_length,1);
        
        $dec_chars=bindec($c);
        $dec_chars=$dec_chars - strlen($key);
        $c=chr($dec_chars);
        $key_length++;
        
        if($key_length>=strlen($key)){
            $key_length=0;
        }
        
        $dec_chars=ord($c)^ord($k);
        $p=chr($dec_chars);
        $plain_data=$plain_data.$p;
       }
       
       return $plain_data;
    }
    
    function base64todec($base64_value){
    
       // convert base64 value into decimal value
    
       switch($base64_value){
        case "A":$decimal_value=0;break;
        case "B":$decimal_value=1;break;
        case "C":$decimal_value=2;break;
        case "D":$decimal_value=3;break;
        case "E":$decimal_value=4;break;
        case "F":$decimal_value=5;break;
        case "G":$decimal_value=6;break;
        case "H":$decimal_value=7;break;
        case "I":$decimal_value=8;break;
        case "J":$decimal_value=9;break;
        case "K":$decimal_value=10;break;
        case "L":$decimal_value=11;break;
        case "M":$decimal_value=12;break;
        case "N":$decimal_value=13;break;
        case "O":$decimal_value=14;break;
        case "P":$decimal_value=15;break;
        case "Q":$decimal_value=16;break;
        case "R":$decimal_value=17;break;
        case "S":$decimal_value=18;break;
        case "T":$decimal_value=19;break;
        case "U":$decimal_value=20;break;
        case "V":$decimal_value=21;break;
        case "W":$decimal_value=22;break;
        case "X":$decimal_value=23;break;
        case "Y":$decimal_value=24;break;
        case "Z":$decimal_value=25;break;
        case "a":$decimal_value=26;break;
        case "b":$decimal_value=27;break;
        case "c":$decimal_value=28;break;
        case "d":$decimal_value=29;break;
        case "e":$decimal_value=30;break;
        case "f":$decimal_value=31;break;
        case "g":$decimal_value=32;break;
        case "h":$decimal_value=33;break;
        case "i":$decimal_value=34;break;
        case "j":$decimal_value=35;break;
        case "k":$decimal_value=36;break;
        case "l":$decimal_value=37;break;
        case "m":$decimal_value=38;break;
        case "n":$decimal_value=39;break;
        case "o":$decimal_value=40;break;
        case "p":$decimal_value=41;break;
        case "q":$decimal_value=42;break;
        case "r":$decimal_value=43;break;
        case "s":$decimal_value=44;break;
        case "t":$decimal_value=45;break;
        case "u":$decimal_value=46;break;
        case "v":$decimal_value=47;break;
        case "w":$decimal_value=48;break;
        case "x":$decimal_value=49;break;
        case "y":$decimal_value=50;break;
        case "z":$decimal_value=51;break;
        case "0":$decimal_value=52;break;
        case "1":$decimal_value=53;break;
        case "2":$decimal_value=54;break;
        case "3":$decimal_value=55;break;
        case "4":$decimal_value=56;break;
        case "5":$decimal_value=57;break;
        case "6":$decimal_value=58;break;
        case "7":$decimal_value=59;break;
        case "8":$decimal_value=60;break;
        case "9":$decimal_value=61;break;
        case "+":$decimal_value=62;break;
        case "/":$decimal_value=63;break;
        case "=":$decimal_value=64;break;
        default: $decimal_value=0;break;
       }
       
       return $decimal_value;
    }
    ?>
    i want to use these algorithms to create a page with simple text box with submit button .


    and the result must be shown or to be redirected to some page . (most preferrable to a txt file )


    there can be 2 different pages 1 for encryption and 1 for decryption or a single page where there is encode/decode button

    Thanks in advance

  • #2
    UE Antagonizer Fumigator's Avatar
    Join Date
    Dec 2005
    Location
    Utah, USA, Northwestern hemisphere, Earth, Solar System, Milky Way Galaxy, Alpha Quadrant
    Posts
    7,691
    Thanks
    42
    Thanked 637 Times in 625 Posts
    What is your question?

  • #3
    New to the CF scene
    Join Date
    Mar 2009
    Posts
    2
    Thanks
    0
    Thanked 0 Times in 0 Posts

    Question

    I dont know how to use this algorithm for Creating a encrypt/decrypt page

    i mean to say i cannot understand how are all the veriables used

  • #4
    UE Antagonizer Fumigator's Avatar
    Join Date
    Dec 2005
    Location
    Utah, USA, Northwestern hemisphere, Earth, Solar System, Milky Way Galaxy, Alpha Quadrant
    Posts
    7,691
    Thanks
    42
    Thanked 637 Times in 625 Posts
    You'll need to get more specific. I don't think anyone here is going to want to go through the code line-by-line with you and explain each line. (If someone does want to do that, more power to ya )

  • #5
    Regular Coder
    Join Date
    Aug 2008
    Location
    Northern Ireland
    Posts
    167
    Thanks
    12
    Thanked 6 Times in 6 Posts
    Your Encrypt is missing some text, something like

    PHP Code:
    function changedatain($plain_data,$key)


    At the very top.
    Last edited by tosbourn; 03-03-2009 at 05:02 PM. Reason: posted mid sentence... do'h!


  •  

    Posting Permissions

    • You may not post new threads
    • You may not post replies
    • You may not post attachments
    • You may not edit your posts
    •