$str= "Test Encryption decryption"; $key= ' ^&yang*% #2014!$ '; $new _str= My_encrypt ($str,$key ); Echo' Primitive: '.$str.‘ <br/> '; Echo' Encrypt: '.$new _str.‘ <br/> '; Echo' Decrypt: '. My_decrypt ($new _str,$key); functionMy_encrypt ($string,$key= ' ') { $key=MD5($key); $key _length=strlen($key); $string=substr(MD5($string.$key), 0,8).$string; $string _length=strlen($string); $rndkey=$box=Array(); $result= ' '; for($i= 0;$i<=255;$i++) { $rndkey[$i] =Ord($key[$i%$key _length]); $box[$i] =$i; } for($j=$i= 0;$i<256;$i++) { $j= ($j+$box[$i]+$rndkey[$i])%256; $tmp=$box[$i]; $box[$i] =$box[$j]; $box[$j] =$tmp; } for($a=$j=$i= 0;$i<$string _length;$i++) { $a= ($a+1)%256; $j= ($j+$box[$a])%256; $tmp=$box[$a]; $box[$a] =$box[$j]; $box[$j] =$tmp; $result.=CHR(Ord($string[$i])^($box[($box[$a]+$box[$j])%256])); } return Str_replace(' = ', ',Base64_encode($result)); } functionMy_decrypt ($string,$key= ' ') { $key=MD5($key); $key _length=strlen($key); $string=Base64_decode($string); $string _length=strlen($string); $rndkey=$box=Array(); $result= ' '; for($i= 0;$i<=255;$i++) { $rndkey[$i] =Ord($key[$i%$key _length]); $box[$i] =$i; } for($j=$i= 0;$i<256;$i++) { $j= ($j+$box[$i]+$rndkey[$i])%256; $tmp=$box[$i]; $box[$i] =$box[$j]; $box[$j] =$tmp; } for($a=$j=$i= 0;$i<$string _length;$i++) { $a= ($a+1)%256; $j= ($j+$box[$a])%256; $tmp=$box[$a]; $box[$a] =$box[$j]; $box[$j] =$tmp; $result.=CHR(Ord($string[$i])^($box[($box[$a]+$box[$j])%256])); } if(substr($result, 0,8) = =substr(MD5(substr($result, 8).$key), 0,8)) { return substr($result, 8); } Else { return‘‘; } }
Output Result:
Original: Test Encryption decryption
Encryption: LORKIDFSTZF0B4MSFHOYQSO2MJNIPT7UPB8
Decryption: Test Encryption decryption
PHP Cryptographic decryption function