Skip to content

Instantly share code, notes, and snippets.

@LogIN-
Created October 6, 2014 14:20
Show Gist options
  • Select an option

  • Save LogIN-/f3ffa080f688c7ceff57 to your computer and use it in GitHub Desktop.

Select an option

Save LogIN-/f3ffa080f688c7ceff57 to your computer and use it in GitHub Desktop.
PHP Binary-> Decimal - Decimal->Ternary convert
<?php
$i = 100;
while ($i <= 150) {
$id = $i;
$start = microtime(true);
$binary_id_enc = dec2bin_i($id);
$binary_id_dec = bin2dec_i($binary_id_enc);
echo "-------------------------------------<br />";
echo "Our Number: <i>".$id."</i><br />";
echo "Binary Encoded: <b>".$binary_id_enc."</b><br />";
echo "Binary Decoded: <i>".$binary_id_dec."</i><br />";
$ternary_id_enc = dec2ternary_i($id); // Our
$ternary_id_dec = ternary2dec_i($ternary_id_enc); // Our
echo "=>Ternary Encoded: <b>".$ternary_id_enc."</b><br />";
echo "Ternary Decoded: <i>".$ternary_id_dec."</i><br />";
$encrypted_string = num2alpha($ternary_id_enc);
$decrypted_string = alpha2num($encrypted_string);
echo "ENCRYPTED ENCODED: <b>".$encrypted_string."</b><br />";
echo "=>ENCRYPTED DECODED: <i>".$decrypted_string."</i><br />";
$encrypted_final = str2hex($encrypted_string);
$decrypted_final = hex2str($encrypted_final);
echo "ENCRYPTED FINAL: <b>".$encrypted_final."</b><br />";
echo "=>DECRYPTED FINAL: <i>".$decrypted_final."</i><br />";
$time_taken = microtime(true) - $start;
echo "Processing time: <i>".$time_taken."</i><br />";
$i++;
}
/* Convert Decimal to Binary */
function dec2bin_i($decimal_i){
bcscale(0);
$binary_i = '';
do
{
$binary_i = bcmod($decimal_i,'2') . $binary_i;
$decimal_i = bcdiv($decimal_i,'2');
} while (bccomp($decimal_i,'0'));
return($binary_i);
}
/* Convert Binary to Decimal */
function bin2dec_i($binary_i){
bcscale(0);
$decimal_i = '0';
for ($i = 0; $i < strlen($binary_i); $i++)
{
$decimal_i = bcmul($decimal_i,'2');
$decimal_i = bcadd($decimal_i,$binary_i[$i]);
}
return($decimal_i);
}
/* Convert Decimal to Ternary */
function dec2ternary_i($decimal_i){
bcscale(0);
$binary_i = '';
do
{
$binary_i = bcmod($decimal_i,'3') . $binary_i;
$decimal_i = bcdiv($decimal_i,'3');
} while (bccomp($decimal_i,'0'));
return($binary_i);
}
/* Convert Ternary to Decimal */
function ternary2dec_i($ternary_i){
bcscale(0);
$decimal_i = '0';
for ($i = 0; $i < strlen($ternary_i); $i++)
{
$decimal_i = bcmul($decimal_i,'3');
$decimal_i = bcadd($decimal_i,$ternary_i[$i]);
}
return($decimal_i);
}
// ENCRYPTION
function num2alpha($n) {
$r = '';
for ($i = 1; $n >= 0 && $i < 10; $i++) {
$r = chr(0x41 + ($n % pow(26, $i) / pow(26, $i - 1))) . $r;
$n -= pow(26, $i);
}
return $r;
}
function alpha2num($a) {
$r = 0;
$l = strlen($a);
for ($i = 0; $i < $l; $i++) {
$r += pow(26, $i) * (ord($a[$l - $i - 1]) - 0x40);
}
return $r - 1;
}
function hex2str( $hex ) {
return pack('H*', $hex);
}
function str2hex( $str ) {
return array_shift( unpack('H*', $str) );
}
?>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment