This issue tracker has been migrated to GitHub, and is currently read-only.
For more information, see the GitHub FAQs in the Python's Developer Guide.

classification
Title: uuid.uuid4().hex not random
Type: Stage: resolved
Components: Library (Lib) Versions: Python 3.8
process
Status: closed Resolution: not a bug
Dependencies: Superseder:
Assigned To: Nosy List: KingUdo, remi.lapeyre
Priority: normal Keywords:

Created on 2020-05-08 08:37 by KingUdo, last changed 2022-04-11 14:59 by admin. This issue is now closed.

Messages (3)
msg368428 - (view) Author: Lars (KingUdo) Date: 2020-05-08 08:37
Hi everybody

I just noticed that the uuid.uuid4().hex command does not create fully random hex values. The character on the 13th position is always 4 and the 17th position is equally distributed 8,9,a,b.
One million uuids follow following distribution. 

{'0': 62312, '1': 62626, '2': 62308, '3': 62801, '4': 62173, '5': 62622, '6': 62527, '7': 62310, '8': 62574, '9': 62314, 'a': 62575, 'b': 62472, 'c': 62500, 'd': 62229, 'e': 62813, 'f': 62844}
{'0': 62239, '1': 63002, '2': 62551, '3': 62601, '4': 62075, '5': 62314, '6': 62584, '7': 62184, '8': 62359, '9': 62637, 'a': 63100, 'b': 62782, 'c': 62097, 'd': 62359, 'e': 62487, 'f': 62629}
{'0': 62647, '1': 62649, '2': 62924, '3': 62555, '4': 62683, '5': 62435, '6': 62403, '7': 63010, '8': 62235, '9': 62412, 'a': 62320, 'b': 62081, 'c': 62795, 'd': 62329, 'e': 62420, 'f': 62102}
{'0': 62641, '1': 62772, '2': 62458, '3': 62483, '4': 62201, '5': 62564, '6': 62307, '7': 62822, '8': 62102, '9': 62284, 'a': 62561, 'b': 62749, 'c': 62264, 'd': 62732, 'e': 62445, 'f': 62615}
{'0': 62433, '1': 62815, '2': 62761, '3': 62355, '4': 62526, '5': 62464, '6': 62494, '7': 62116, '8': 62813, '9': 62556, 'a': 62722, 'b': 62440, 'c': 62634, 'd': 61967, 'e': 62425, 'f': 62479}
{'0': 62544, '1': 62573, '2': 62774, '3': 62143, '4': 62814, '5': 62144, '6': 62207, '7': 62605, '8': 62567, '9': 62689, 'a': 62500, 'b': 62631, 'c': 62460, 'd': 62156, 'e': 62613, 'f': 62580}
{'0': 62707, '1': 62315, '2': 62698, '3': 62260, '4': 62634, '5': 62145, '6': 62358, '7': 62725, '8': 61971, '9': 62559, 'a': 62341, 'b': 62846, 'c': 62650, 'd': 62527, 'e': 62712, 'f': 62552}
{'0': 62477, '1': 62571, '2': 62672, '3': 62207, '4': 62798, '5': 62338, '6': 62381, '7': 62490, '8': 62478, '9': 62434, 'a': 62391, 'b': 62397, 'c': 62870, 'd': 62550, 'e': 62679, 'f': 62267}
{'0': 62238, '1': 62361, '2': 62895, '3': 62525, '4': 62799, '5': 62763, '6': 62422, '7': 62621, '8': 62446, '9': 62160, 'a': 62636, 'b': 62601, 'c': 62331, 'd': 62342, 'e': 62156, 'f': 62704}
{'0': 62668, '1': 62824, '2': 61820, '3': 62839, '4': 62107, '5': 62527, '6': 62497, '7': 62287, '8': 62881, '9': 62455, 'a': 62742, 'b': 62590, 'c': 62278, 'd': 62419, 'e': 62550, 'f': 62516}
{'0': 62889, '1': 62561, '2': 62428, '3': 62696, '4': 63173, '5': 62220, '6': 62831, '7': 62762, '8': 62267, '9': 62065, 'a': 62737, 'b': 62064, 'c': 62520, 'd': 62593, 'e': 61960, 'f': 62234}
{'0': 62441, '1': 62602, '2': 62799, '3': 62707, '4': 62200, '5': 62562, '6': 62359, '7': 62760, '8': 62530, '9': 62726, 'a': 62210, 'b': 62299, 'c': 62068, 'd': 62702, 'e': 62551, 'f': 62484}
{'0': 0, '1': 0, '2': 0, '3': 0, '4': 1000000, '5': 0, '6': 0, '7': 0, '8': 0, '9': 0, 'a': 0, 'b': 0, 'c': 0, 'd': 0, 'e': 0, 'f': 0}
{'0': 62660, '1': 62302, '2': 62128, '3': 62184, '4': 62560, '5': 62455, '6': 62847, '7': 62020, '8': 62474, '9': 62731, 'a': 61928, 'b': 62928, 'c': 62873, 'd': 62700, 'e': 62333, 'f': 62877}
{'0': 62624, '1': 62754, '2': 62145, '3': 63135, '4': 62234, '5': 62211, '6': 62522, '7': 62568, '8': 62399, '9': 62343, 'a': 62628, 'b': 62299, 'c': 62575, 'd': 62551, 'e': 62516, 'f': 62496}
{'0': 62395, '1': 62461, '2': 62466, '3': 62501, '4': 62121, '5': 62691, '6': 62874, '7': 62683, '8': 62553, '9': 62640, 'a': 62748, 'b': 62110, 'c': 62301, 'd': 62152, 'e': 62366, 'f': 62938}
{'0': 0, '1': 0, '2': 0, '3': 0, '4': 0, '5': 0, '6': 0, '7': 0, '8': 251093, '9': 249017, 'a': 249806, 'b': 250084, 'c': 0, 'd': 0, 'e': 0, 'f': 0}
{'0': 62685, '1': 62833, '2': 61989, '3': 62360, '4': 62187, '5': 62702, '6': 62745, '7': 62988, '8': 62085, '9': 62504, 'a': 62657, 'b': 62472, 'c': 62194, 'd': 62381, 'e': 62474, 'f': 62744}
{'0': 63046, '1': 62392, '2': 62144, '3': 62466, '4': 62042, '5': 62444, '6': 62820, '7': 62685, '8': 62528, '9': 62596, 'a': 62354, 'b': 62885, 'c': 62151, 'd': 62183, 'e': 62568, 'f': 62696}
{'0': 62775, '1': 62743, '2': 61955, '3': 62635, '4': 62272, '5': 62251, '6': 62697, '7': 62829, '8': 62668, '9': 62860, 'a': 62579, 'b': 62267, 'c': 62457, 'd': 62267, 'e': 62288, 'f': 62457}
{'0': 62195, '1': 62646, '2': 62442, '3': 62798, '4': 62356, '5': 62739, '6': 62541, '7': 62298, '8': 62400, '9': 62496, 'a': 62418, 'b': 62329, 'c': 62786, 'd': 62668, 'e': 62183, 'f': 62705}
{'0': 62390, '1': 62260, '2': 62653, '3': 62376, '4': 63093, '5': 62338, '6': 62342, '7': 62834, '8': 62499, '9': 62300, 'a': 62585, 'b': 62358, 'c': 62625, 'd': 62720, 'e': 62433, 'f': 62194}
{'0': 62224, '1': 62687, '2': 62713, '3': 62294, '4': 62880, '5': 62143, '6': 62584, '7': 62577, '8': 62526, '9': 62433, 'a': 62771, 'b': 62751, 'c': 62546, 'd': 62465, 'e': 62192, 'f': 62214}
{'0': 62567, '1': 62452, '2': 62627, '3': 62544, '4': 62417, '5': 62019, '6': 62439, '7': 62482, '8': 62420, '9': 62874, 'a': 62716, 'b': 62342, 'c': 62550, 'd': 62387, 'e': 62672, 'f': 62492}
{'0': 62314, '1': 62519, '2': 62718, '3': 62564, '4': 62209, '5': 62574, '6': 63005, '7': 62524, '8': 62115, '9': 62935, 'a': 62558, 'b': 62266, 'c': 62186, 'd': 61994, 'e': 62924, 'f': 62595}
{'0': 62564, '1': 62153, '2': 62690, '3': 62979, '4': 62226, '5': 62520, '6': 62391, '7': 62340, '8': 62323, '9': 62260, 'a': 62433, 'b': 62860, 'c': 62526, 'd': 62725, 'e': 62853, 'f': 62157}
{'0': 62362, '1': 62677, '2': 62611, '3': 62040, '4': 62471, '5': 62357, '6': 62707, '7': 62403, '8': 62644, '9': 62516, 'a': 62395, 'b': 62521, 'c': 62543, 'd': 62762, 'e': 62271, 'f': 62720}
{'0': 62645, '1': 62458, '2': 62556, '3': 62666, '4': 62522, '5': 62381, '6': 62372, '7': 62609, '8': 62760, '9': 62325, 'a': 62294, 'b': 62771, 'c': 62094, 'd': 62811, 'e': 62389, 'f': 62347}
{'0': 62112, '1': 62630, '2': 62546, '3': 62684, '4': 62646, '5': 62590, '6': 62593, '7': 62800, '8': 62462, '9': 62216, 'a': 62166, 'b': 62629, 'c': 62160, 'd': 62106, 'e': 62567, 'f': 63093}
{'0': 61958, '1': 62520, '2': 62275, '3': 62671, '4': 62677, '5': 62971, '6': 62886, '7': 62383, '8': 62533, '9': 62743, 'a': 62678, 'b': 62361, 'c': 62598, 'd': 62047, 'e': 62654, 'f': 62045}
{'0': 62483, '1': 62714, '2': 62778, '3': 62095, '4': 62633, '5': 62754, '6': 62677, '7': 62335, '8': 62313, '9': 62631, 'a': 62604, 'b': 62282, 'c': 62564, 'd': 62597, 'e': 62222, 'f': 62318}
{'0': 62413, '1': 62459, '2': 62568, '3': 62493, '4': 62413, '5': 62809, '6': 63157, '7': 62755, '8': 62592, '9': 62153, 'a': 62097, 'b': 62332, 'c': 62628, 'd': 62258, 'e': 62371, 'f': 62502}
msg368429 - (view) Author: Rémi Lapeyre (remi.lapeyre) * Date: 2020-05-08 09:15
This is expected, while part of them are randomly generated, some bits are always set: https://tools.ietf.org/html/rfc4122#section-4.1.3.

This let you know that the UUID you have is a version 4 just by looking at it, it's not a bug.
msg368430 - (view) Author: Lars (KingUdo) Date: 2020-05-08 09:39
Ok that makes sense. Thanks for letting me know. Should have read the doku more precisely.
History
Date User Action Args
2022-04-11 14:59:30adminsetgithub: 84740
2020-05-08 09:39:04KingUdosetstatus: open -> closed
resolution: not a bug
messages: + msg368430

stage: resolved
2020-05-08 09:15:35remi.lapeyresetnosy: + remi.lapeyre
messages: + msg368429
components: + Library (Lib), - Extension Modules
2020-05-08 08:37:48KingUdocreate