Как преобразовать произвольную базовую строку в двоичный ключ - PullRequest
0 голосов
/ 07 мая 2019

Я думаю, что у меня будет базовый двоичный идентификатор одинаковой длины, скажем, 256 бит.

10101010101000.... up to 256 points

Тогда я смогу получить slug из URL, который закодирован в произвольном алфавите, например:

  • шестнадцатеричный алфавит
  • цифра алфавита
  • 26-буквенный алфавит
  • 52-буквенный алфавит (заглавными буквами)
  • Пользовательский алфавит (5 букв, 10 букв, 20 букв и т. Д.).
  • ...

Так бы это выглядело так:

/123123123 -> fetches a record with _id == 10101010... something

Или мы можем использовать другую базу вместо 10 цифр, как 26-буквенный алфавит:

/AEFCZ... -> fetches the same record with _id == 10101010... something

Вопрос в том, как конвертировать ( a b ), где a - это URL-слаг, а b - это двоичное представление.

Где я запутался (и чего мне не хватает), так это понимания того, как они связаны. Я не понимаю, как вы можете перейти от одного к другому, но я знаю, что это как-то возможно.

Хотите знать, если это так же просто (сложно?), Как представлять каждую пару слаг / бинар как BigInt, тогда выполните:

  1. конвертировать слаг в BigInt
  2. преобразовать BigInt в двоичную строку

Или если бы это даже сработало. Или, если есть лучший подход, потому что я не знаю, как реализовать BigInts, поэтому не уверен, нужно ли учиться.

Конечным результатом будет то, что я смогу использовать любую строку с базовым кодированием и любым алфавитом, который я хочу , для извлечения записи из базы данных. Сначала я преобразую слаг в нечто, а затем использую это, чтобы получить двоичное представление, которое можно использовать, например, в качестве ключа для поиска в SQL.

Хотите знать, как подойти / сделать такого рода вещи.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...