Покажите GUID в 36 форматах букв

GUID является большим шоу случайного числа в ШЕСТНАДЦАТЕРИЧНОМ основании. Я хочу показать это число в более коротком формате, позволяет, говорит это на основе всех букв и чисел. Это - 36 оснований.

Позволяет говорят что: 2f1e4fc0-81fd-11da-9156-00036a0f876a станет как 3jEl9x6eZi.

Есть ли какой-либо 'готовый' алгоритм для этого в .NET?

это должно быть двунаправлено.

Править: использование Base64 является еще лучшим решением. Единственной проблемой является Base64, содержит / символ, который не совместим для использования в URI.

9
задан Fitzchak Yitzchaki 14 February 2010 в 03:55
поделиться

5 ответов

13
ответ дан 4 December 2019 в 08:51
поделиться

Для такого преобразования нет ничего встроенного. Что-то похожее на встроенное использует кодировку base 64:

string base64 = Convert.ToBase64String(theGuid.ToByteArray())
8
ответ дан 4 December 2019 в 08:51
поделиться

Base64 - это то, что я использую, этот исправит проблему с помощью == и / и +

1
ответ дан 4 December 2019 в 08:51
поделиться

Я думаю, что ближе всего вы найдете Base36, однако он не будет работать с типом GIUD (только Int16, Int32 или Int64).

0
ответ дан 4 December 2019 в 08:51
поделиться

Это невозможно в том виде, как вы это представили. Вам пришлось бы потерять информацию:

>>> 16 ** len('2f1e4fc081fd11da915600036a0f876a')
340282366920938463463374607431768211456
>>> 36 ** len('3jEl9x6eZi')
3656158440062976

Чтобы охватить все возможные значения, вам потребуется гораздо больше цифр основания 36. Почему бы вместо этого не использовать основание 64? Результат был бы короче (а я предполагаю, что это и есть цель), и для этого есть стандартное решение в .NET.

2
ответ дан 4 December 2019 в 08:51
поделиться
Другие вопросы по тегам:

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