Driver86
@Driver86
Немодератор toster.ru

Как изменить систему счисления из 0-f в 0-z-Z?

Подскажите алгоритм перевода md5-hash из 12a0aef... (или сразу из бинарного raw) в d1t5Zxs...
  • Вопрос задан
  • 157 просмотров
Решения вопроса 1
Driver86
@Driver86 Автор вопроса
Немодератор toster.ru
function baseConvert(string $number, int $fromBase, int $toBase) {
    $chars = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ-_';
    if ($fromBase == 10) {
        $int = $number;
    } else {
        $int = 0;
        $len = strlen($number);
        $numberRev = strrev($number);
        for ($i = 0; $i < $len; $i++) {
            $int = gmp_add($int, gmp_mul($chars[strpos($chars, $numberRev[$i])], gmp_pow($fromBase, $i)));
        }
    }
    $converted = '';
    while (gmp_cmp($int, 0) > 0) {
        list ($int, $remainder) = gmp_div_qr($int, $toBase);
        $converted = $chars[gmp_intval($remainder)] . $converted;
    }
    return $converted;
}
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
@Mercury13
Программист на «си с крестами» и не только
Скорее всего, какой-то вариант BASE64.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы