PHP - Number Encrypter/Decrypter
From Global Programming Syntax
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.
