PHP - Number Encrypter/Decrypter

From Global Programming Syntax

Jump to: navigation, search

Although this function supports just about every character on the standard keyboard, this function was originally design for encoding names for urls. So the following is the encoder and decoder:

<?php  
function encrypt($data) {
$data=str_replace(array('0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F','G','H','I','J','K','L','M','N','O',
'P','Q','R','S','T','U','V','W','X','Y','Z','a','b','c','d','e','f','g','h','i','j','k','l','m','n',
'o','p','q','r','s','t','u','v','w','x','y','z','`','~','!','@','#','$','%','^','&','*','(',')','-',
'_','=','+','\\','|','[',']','{','}',':',';','\'','"',',','.','<','>','?','/',' '),
array('00','01','02','03','04','05','06','07','08','09','10','11','12','13','14','15','16','17','18','19',
'20','21','22','23','24','25','26','27','28','29','30','31','32','33','34','35','36','37','38','39',
'40','41','42','43','44','45','46','47','48','49','50','51','52','53','54','55','56','57','58','59',
'60','61','62','63','64','65','66','67','68','69','70','71','72','73','74','75','76','76','77','78',
'79','80','81','82','83','84','84','86','87','88','89','90','91','92','93'),$data);
return $data;
}
function decrypt($data) {
$chars=str_split ($data,2);
unset($data);
$data='';
foreach($chars AS $char) {
$data.=str_replace(array('00','01','02','03','04','05','06','07','08','09','10','11','12','13','14','15','16','17','18',
'19','20','21','22','23','24','25','26','27','28','29','30','31','32','33','34','35','36','37',
'38','39','40','41','42','43','44','45','46','47','48','49','50','51','52','53','54','55','56',
'57','58','59','60','61','62','63','64','65','66','67','68','69','70','71','72','73','74','75',
'76','76','77','78','79','80','81','82','83','84','84','86','87','88','89','90','91','92','93'),
array('0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F','G','H','I','J','K','L','M','N',
'O','P','Q','R','S','T','U','V','W','X','Y','Z','a','b','c','d','e','f','g','h','i','j','k','l',
'm','n','o','p','q','r','s','t','u','v','w','x','y','z','`','~','!','@','#','$','%','^','&','*',
'(',')','-','_','=','+','\\','|','[',']','{','}',':',';','\'','"',',','.','<','>','?','/',' '),
$char);
}
return $data;
}
/*---------------------------------------*/
// now to use the function
$string = 'This is a short phrase.';
$encrypted = encrypt($string);
$decrypted = decrypt($encrypted);
 
echo 'Original: ' . $string . '<br />';
echo 'Encrypted: ' . $encrypted . '<br />';
echo 'Decrypted: ' . $decrypted;
?>

And the above code will output the below:

Original: This is a short phrase.
Encrypted: 2943445493445493369354435053559351435336544088
Decrypted: This is a short phrase.

Although there are probably better ways around it this function which was design for short strings like in the example was mainly designed for numbers and letters with a few exceptions.

Personal tools
languages
page stats
Toolbox