Exemplo n.º 1
0
            // perform the other $count - 1 iterations
            for ($j = 1; $j < $count; $j++) {
                $xorsum ^= $last = hash_hmac($algorithm, $last, $password, true);
            }
            $output .= $xorsum;
        }
        if ($raw_output) {
            return substr($output, 0, $key_length);
        } else {
            return bin2hex(substr($output, 0, $key_length));
        }
    }
}
//
// Register some cool base encoders
//
Cipher::registerBaseEncoder(Cipher::BASE_USER_SAFE, array('encode' => function ($str) {
    return Cipher::baseConvertMapped($str, '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ+/', '0123456789bcdfghjklmnpqrstvwxyzBCDFGHJKLMNPQRSTVWXYZ');
}, 'decode' => function ($str) {
    return Cipher::baseConvertMapped($str, '0123456789bcdfghjklmnpqrstvwxyzBCDFGHJKLMNPQRSTVWXYZ', '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ+/');
}));
Cipher::registerBaseEncoder(Cipher::BASE_PRINTABLE, array('encode' => function ($str) {
    return Cipher::baseConvertMapped($str, '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ+/', '3467bcdfhjkmnpqrtvwxy');
}, 'decode' => function ($str) {
    return Cipher::baseConvertMapped($str, '3467bcdfhjkmnpqrtvwxy', '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ+/');
}));
Cipher::registerBaseEncoder(Cipher::BASE_ASCII, array('encode' => function ($str) {
    return Cipher::baseConvertMapped($str, '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ+/ !"#$%&\'()*,-.:;<=>?@[\\]^_`{|}~', '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ+/');
}, 'decode' => function ($str) {
    return Cipher::baseConvertMapped($str, '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ+/', '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ+/ !"#$%&\'()*,-.:;<=>?@[\\]^_`{|}~');
}));