/**
 * Turn a binary back into a long
 * @param string $b
 * @return integer
 * @url http://openidenabled.com Borrowed from PHP-OpenID
 */
function long($b)
{
    $bytes = array_merge(unpack('C*', $b));
    $n = 0;
    foreach ($bytes as $byte) {
        $n = bmmul($n, bmpow(2, 8));
        $n = bmadd($n, $byte);
    }
    return $n;
}
Beispiel #2
0
function bin($n)
{
    $bytes = array();
    while (bmcomp($n, 0) > 0) {
        array_unshift($bytes, bmmod($n, 256));
        $n = bmdiv($n, bmpow(2, 8));
    }
    if ($bytes && $bytes[0] > 127) {
        array_unshift($bytes, 0);
    }
    $b = '';
    foreach ($bytes as $byte) {
        $b .= pack('C', $byte);
    }
    return $b;
}