Last active
April 27, 2021 23:55
-
-
Save fabiolimace/508dd2dd9d32fd493b31a5f386d5d4bc to your computer and use it in GitHub Desktop.
Generate a list of UUIDs in base-36, base-58 or base-62
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| #!/bin/env python3 | |
| import string | |
| from uuid import uuid4 | |
| alphabet_b36_lower = "0123456789abcdefghijklmnopqrstuvwxyz" # base-36 | |
| alphabet_b36_upper = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ" # base-36 | |
| alphabet_b58_lower = "123456789abcdefghijkmnopqrstuvwxyzABCDEFGHJKLMNPQRSTUVWXYZ" # base-58 | |
| alphabet_b58_upper = "123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz" # base-58 (used in BTC) | |
| alphabet_b62_lower = "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ" # base-62 | |
| alphabet_b62_upper = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz" # base-62 | |
| def basen(number, base, alphabet): | |
| '''https://stackoverflow.com/questions/2267362/how-to-convert-an-integer-to-a-string-in-any-base''' | |
| output = "" | |
| while number: | |
| output += alphabet[number % base] | |
| number //= base | |
| return output[::-1] or "0" | |
| def print_list(base, length, alphabet): | |
| padding_char = alphabet[0] | |
| for i in range(0, 1000): | |
| uuid = uuid4() | |
| number = uuid.int | |
| encoded = basen(number, base, alphabet) | |
| print('{"' + str(uuid) + '", "' + encoded.rjust(length, padding_char) + '"}, //') | |
| # CHOOSE ONE OPTION: | |
| print_list(36, 25, alphabet_b36_lower) # base-36 lower | |
| # print_list(36, 25, alphabet_b36_upper) # base-36 upper | |
| # print_list(58, 22, alphabet_b58_lower) # base-58 lower first | |
| # print_list(58, 22, alphabet_b58_upper) # base-58 upper first | |
| # print_list(62, 22, alphabet_b62_lower) # base-62 lower first | |
| # print_list(62, 22, alphabet_b62_upper) # base-62 upper first |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
This comment contains 3 lists generated by the script. Each list contains 10 lines.
base-36 (lowercase)
{"af7b0959-d916-40b0-8443-2ef22a6d2557", "adzzfv1klzmpwc55z8o60f68n"}, // {"1d9772bc-76b5-41eb-9aac-31ed62188eb6", "1r2gd7niddmwltccqexatsl2u"}, // {"e5408ee6-e185-4d1a-86fa-1f9a239e24a7", "dkloh8pksx09fj23bchsz1l7r"}, // {"1c0725aa-5226-4782-8eb8-43c423057c3b", "1nqh9fwm77f7l1zd9mt079id7"}, // {"d7d96d3f-9b24-497f-8b2f-f85484c5068d", "cs1bsvdfss5qrreg0hkswwyh9"}, // {"2995adfc-9b57-47a3-bffb-b8e73f52376e", "2gmn28uns4s7ozz2mxqvhccj2"}, // {"2a0ef2f4-799b-4974-8fc5-e56a2f5a4649", "2hmzikfgtphuli87v47ymldmx"}, // {"16b655b4-4d21-43bb-bed1-a947b3b88621", "1ceml2r1akg4kmfzy53rscw81"}, // {"fad4614d-6673-4466-bfe3-d51f6a6b6490", "eul8j8lr8ewflhjo4pn431rio"}, // {"3b7fa836-c487-4bbe-976d-60cb83c12bdc", "3it442kqumpzszbn0mnod6kt8"}, //base-58 (uppercase first, used in Bitcoin)
{"81e2fd37-01f2-4d78-a736-5a2ee460405a", "H3G4faAGpbMAAAKQSJpXnh"}, // {"4ca93fe4-df5d-4555-8aba-7fc8c62811b2", "AU47gnTFLMiCNErQFRiWWd"}, // {"692f8e6a-0db4-4e5d-8192-9104af4aeaa1", "DzMHCCe1FZ9a5dj8UkieSC"}, // {"60dd7318-5e0c-4d14-9741-cde23ec7e914", "Cxkqgh1YyjdwqtGxpqB2pT"}, // {"c06706ff-84a6-4762-b88b-11a0776ea692", "Qm1BZsr6bU1LgaXcpPLKeq"}, // {"92b875b9-a320-40b2-a216-2cd234f91828", "K7psW24MifWcNj794Ggish"}, // {"21a7b046-b800-4730-aa04-ef8e42c23596", "5A3LXUde9EKckYJ4XWMaXw"}, // {"111471f3-bc5f-424a-944a-8f597c236e12", "37KzdGj33g6cTg9dv1s9qb"}, // {"b9b8fb90-132c-4226-b667-b03827ce972f", "PwAMuUQxa8PXuqPaNT7QzS"}, // {"906a6047-40fa-4614-97e6-da0ccff798e8", "JqKNBGKyZ1K7N4VsqgDwC3"}, //base-62 (uppercase first)
{"fd7c8e2f-39b9-4875-9351-dc405a779474", "7iJynqEF7uy5D7n3ab1cWK"}, // {"7f730cb1-0e83-4389-a959-e2eacc7ab62d", "3sUbPCca93IjJmgtx52gOL"}, // {"d70fb4a8-8f73-406c-a134-c776f578eb4a", "6XoWixeQSEBZVM3dgbv5NS"}, // {"62ed98f7-3187-45be-83af-201c43e05cb7", "30fpU7IyPH6lr2p6DLACD1"}, // {"8e0fcdbe-12b0-421a-8de4-9ac2e4a36eb6", "4K48EEPK8gwW70Y7tJyHoc"}, // {"eb574660-9a61-4ded-9981-706ebba84ded", "7A553cgVbFVylEVGYhqw73"}, // {"5bc66c19-e478-4d35-8638-e398c86f8c40", "2nAyouaV6pW3hfTV2D3TTE"}, // {"403d80a5-c92e-4022-94ff-df0ab9909784", "1xDcAbRDGjMcshJypzldIK"}, // {"373259ea-408c-4103-ae24-b7493dae8b3a", "1g9aUQYvbq58Y2RIk6vNbG"}, // {"a0c16067-a0f5-4038-a2ea-95831797aa55", "4tL91vRzKn0GYcx0DkwPrh"}, //