mega77 Posted December 23, 2007 Share Posted December 23, 2007 This Encrypt/Decrypt function results in an encrypted code with non-alphanumeric chars. Is anybody able to modify this php code slightly to only include alphanumeric chars ? <?php // String EnCrypt + DeCrypt function // Author: halojoy, July 2006 // Modified and commented by: laserlight, August 2006 function convert($text, $key = '') { // return text unaltered if the key is blank if ($key == '') { return $text; } // remove the spaces in the key $key = str_replace(' ', '', $key); if (strlen($key) < { exit('key error'); } // set key length to be no more than 32 characters $key_len = strlen($key); if ($key_len > 32) { $key_len = 32; } $k = array(); // key array // fill key array with the bitwise AND of the ith key character and 0x1F for ($i = 0; $i < $key_len; ++$i) { $k[$i] = ord($key{$i}) & 0x1F; } // perform encryption/decryption for ($i = 0; $i < strlen($text); ++$i) { $e = ord($text{$i}); // if the bitwise AND of this character and 0xE0 is non-zero // set this character to the bitwise XOR of itself // and the ith key element, wrapping around key length // else leave this character alone if ($e & 0xE0) { $text{$i} = chr($e ^ $k[$i % $key_len]); } } return $text; } ?> <?php $encrypted = convert("Alpha numeric only,34,23.55,50", $key="password"); print $encrypted; print convert($encrypted, $key="password"); ?> Results: Encrypted: Qmc{v/|q}dazt/}j|x? ## 7>4&?"? Decrypted: Alpha numeric only,34,23.55,50 Quote Link to comment https://forums.phpfreaks.com/topic/82911-encrypt-decrypt-function/ Share on other sites More sharing options...
Lumio Posted December 23, 2007 Share Posted December 23, 2007 for sure...: <?php function encodeDec($s) { $n = ''; //convert every sign into hex. for ($i=0; $i<strlen($s); $i++) $n .= str_pad(dechex(ord(substr($s, $i, 1))), '0', STR_PAD_LEFT); return $n; } function decodeHex($s) { $n = ''; //convert every hex into dec and into a sign. for ($i=0; $i<strlen($s); $i+=2) $n .= chr(hexdec(substr($s, $i, 2))); return $n; } $yourPassword = yourPasswordFunction('hello world'); $yourPassword = encodeDec($yourPassword); echo 'Encrypted+converted in hex: '.$yourPassword; $yourPassword = decodeHex($yourPassword); $yourPassword = yourPasswordDecryptFunction($yourPassword); echo 'Decrypted: '.$youPassword; ?> Quote Link to comment https://forums.phpfreaks.com/topic/82911-encrypt-decrypt-function/#findComment-421642 Share on other sites More sharing options...
mega77 Posted December 23, 2007 Author Share Posted December 23, 2007 Thank you for your answer. Your 2 functions result in the following. As far as I read moving between different code bases result in differences between the start and the end. Is there any way around this problem ? Is it possible to modify the actual encryption/decryption formula to bypass base code differences ? The Encryption and Decryption function is the same, the same function goes both ways. Start: Alpha numeric only,34,23.55,50 Encrypted: Qmc{v/|q}dazt/}j|x? ## 7>4&?"? Converted: 516d637b762f7c717d64617a742f7d6a7c783f20232320373e34263f223f3c6272202f3e Convert back: Qmc{v/|q}dazt/}j|x? ## 7>4&?"? End result: Alpha numeric only,34,23.55,50.fb!<- <?php $encrypted = convert("Alpha numeric only,34,23.55,50", $key="password")."<br />"; print $encrypted."<br />"; function encodeDec($s) { $n = ''; //convert every sign into hex. for ($i=0; $i<strlen($s); $i++) $n .= str_pad(dechex(ord(substr($s, $i, 1))), '0', STR_PAD_LEFT); return $n; } function decodeHex($s) { $n = ''; //convert every hex into dec and into a sign. for ($i=0; $i<strlen($s); $i+=2) $n .= chr(hexdec(substr($s, $i, 2))); return $n; } $converted = encodeDec($encrypted); print $converted."<br />"; $reconverted = decodeHex($converted); print $reconverted."<br />"; $decrypted = convert($reconverted, $key="password")."<br />"; print $decrypted; ?> Quote Link to comment https://forums.phpfreaks.com/topic/82911-encrypt-decrypt-function/#findComment-421651 Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.