Сжать вывод хеша (от шестнадцатеричного до «более высокого» представления)

У меня есть значение SHA1 длиной 40 символов, которое хранится в индексированном столбце в таблице InnoDB. Чтобы сократить индекс, я хочу, чтобы он был «сжат», не увеличивая риск столкновения.

<?php

$a = "875e5d6959da75400c837a79ecca23d79b40e7a5";

$b = base_convert($a, 16, 36);

echo $b; // ft92zicmcfks08088wk0oow44oso8gk

?>

Это решение хорошо? И почему я не могу конвертировать в base64, это выдает мне следующее предупреждение:

Warning: base_convert(): Invalid "to base" (64) in...

0

Решение

Потому что согласно руководству base_convert

tobase должно быть от 2 до 36 включительно. Цифры в
числа с основанием выше 10 будут представлены с
буквы a-z со значением 10, b означающие 11 и z означающие 35.
регистр букв не имеет значения, то есть число интерпретируется
регистронезависимо.

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]