crc iz celotne serijske

This commit is contained in:
2024-11-30 22:24:17 +01:00
parent 96a240d948
commit 11b504e29d
3 changed files with 112 additions and 106 deletions

BIN
a.out

Binary file not shown.

View File

@@ -1,100 +1,100 @@
00000001-53743621-a2b3-4d71-a3a7-f8dcfa3bd7b7 89af80b0
00000002-302a1ec1-a152-42c5-9059-f48a4aa6349d 359700e0
00000003-1b6bbfbe-208d-41c4-b62a-a131667ae996 4d3ecb97
00000004-a5085947-5b9b-4e6b-b503-f640aa2cdec6 ae37fbde
00000005-979e86b7-2db8-4d63-a21f-95499a7fe040 951d72f5
00000006-883a87e3-d696-40cc-9947-0d4573ec0d0c a59e5691
00000007-8b94c4b8-4d42-4c31-a2b1-7bfc325c3eba 032eaa50
00000008-97c59f6e-5cef-4bf6-b749-3dab364bb8c1 4d2e5166
00000009-df7d7b2d-c097-4e23-8ada-217c375f38cf a9055df0
00000010-26d73e83-c77a-4a00-83b8-acfa0465bce4 a4ab905c
00000011-e33912a4-d071-481c-8ce9-98844ad15570 b2e8fb9d
00000012-a993f371-0e6f-42d2-a91f-cd2e858b1369 bc1f7100
00000013-c4260f95-97d8-42e4-824b-6a0e1dbf7ec7 41c40a08
00000014-54733a62-e3ac-460d-8b04-3b518f4ebb54 0792edb3
00000015-74cbea0d-a49d-4268-a95e-76081ef5d072 c799823d
00000016-690bd54d-b70c-4b84-9196-d6a0e592f55b 38b3aec5
00000017-5ee06803-7f5c-4b6a-bae2-73d8d8444c42 830ed1b7
00000018-4f239007-30eb-4b41-8363-e26af5d8c555 64d8144b
00000019-ba2e593b-8ac5-4545-a819-1f815e6cc4ad f6b76758
00000020-9056b5c0-4342-43c6-a5e5-329cbff7f27a f0d6f206
00000021-264cb5b1-135c-47bb-b618-3ed485038316 b25096f8
00000022-5a39d79d-7cda-4522-8197-bf818fb2fbb6 012b3b11
00000023-00b26913-0f62-4e85-ba0d-5b0111de176c 7aac7798
00000024-18ef0a94-cb70-478d-8977-10982a0d502a e66c4033
00000025-bfba3ecf-1d0d-4598-9bb0-992d90b199a9 54fde683
00000026-a1a43e6d-16f6-4b1f-ae0c-b8991909c4d8 ac520492
00000027-c304a9e1-11fe-4a2d-b014-5b42c5f5eb68 920116b2
00000028-9b2bd5b1-22d1-4091-9d89-2cf793f1d158 1b56257c
00000029-f57b3a08-7bb5-462d-8991-6f90885bf824 d09b3516
00000030-86cfd6a9-a2a8-4b81-b368-79c65a4b1f50 94288e36
00000031-c75a5943-108f-40da-a2df-6caa3c66cfc2 3fb54b8d
00000032-36a66cd9-4fa8-4b82-91d5-4a6b226abce9 8abd31ff
00000033-c4172dd5-a69e-41c9-bf1e-74bb84457ebb 982a7178
00000034-eceb953d-94f0-4fa6-870b-13e975d0d33b 2d88adaf
00000035-e702128f-a0c3-4920-a1ce-dc67145b2301 e627dbb4
00000036-48b83edd-aafe-4472-8b98-5c816931bd51 014d59a6
00000037-34cfe1d5-943b-4676-8bd3-dd1f2f022178 4520fea2
00000038-ba605665-60db-486b-b436-ecdd67aa309b 831bd23c
00000039-7b127110-4e68-4759-bc66-796c689ae424 ede54979
00000040-fa3c895c-1863-478c-99b5-6b01609b9ddc e22da9f2
00000041-ae10edfc-7975-47b6-9cd0-24456c096968 b693d047
00000042-46f3c45e-588c-4bf1-8257-f3a3f29181a2 e06b73c9
00000043-a26f9f1c-e5f7-43c2-88f7-093502739d48 a917d49b
00000044-6763a7bf-ef93-4233-aba6-d7df395a82db 9a6fc586
00000045-c923f8b0-1bcc-43e3-857d-1ac7f0b81059 e4a9306e
00000046-1cb71a0d-4ccc-4038-b319-18ad739a8a3e dc62a364
00000047-bd84eed9-5263-4d18-a0d7-dfd191f02cad 7c4a99ac
00000048-a846baf5-13fb-4f87-9647-358ae2bfc8a1 b62bbfbb
00000049-44b87b96-1d3a-4ffe-938f-d1a480fd522a 3892a693
00000050-440e2057-0a50-4e20-9815-aa7bd5741e1b f9db219e
00000051-2e9ab24c-d462-4be8-b11d-8d721be09d5f 8b32007d
00000052-eebeb7f9-0f97-4aa7-acc5-24823b439d6a fa5c2520
00000053-dd51b6b3-b303-4ca5-a02b-193c0cb79bfb c144c47d
00000054-7653f585-ea11-4e98-9752-1c1495ba7e74 fcdc0724
00000055-0c3628bf-39c5-4659-b080-95fd3832faae 9d27be35
00000056-86f03572-0263-4bda-b527-ee4ce26dc0ee f369d879
00000057-a4e9aedd-af16-48a1-96ce-a0ce019b7d88 27bcc04f
00000058-8cb3fa8f-1707-4bcd-af5a-1a12c8da016d bdb10387
00000059-c5b04b75-c684-485d-93b8-2d5555abdee2 91f3c213
00000060-5fd97276-e1de-4411-b95f-23023b256f01 4d2bfbcf
00000061-d5bb779c-408f-4a94-8928-e99ed3c88134 dc4e917a
00000062-a3f4aa85-d3ef-470e-8fbb-108be0808cb6 f44df742
00000063-3c04547d-9450-42dd-b9fc-7d4ec6fe826b 44771f60
00000064-f42ef1c9-1e89-476e-85e8-f9266987dda6 376929e2
00000065-8b332420-8437-4efd-b57c-4cfc7cce6872 c368b705
00000066-fc5a3c1c-e414-4a2b-bd85-52670d300e99 c27ce15f
00000067-6433bae8-6aba-46a0-b734-9db404072701 129f397e
00000068-62641e47-79a9-4377-afc5-de3df5edd75b 90c6d24c
00000069-2192448c-4d2c-4d85-a1cb-3b65d2626736 c9a0efc1
00000070-c6857e41-2ff1-485f-b797-9dae85750aa7 8e5d05b3
00000071-094f3457-7c62-4ddd-af19-43037cab3943 cc967352
00000072-31b78561-aa3e-4162-9560-125cd61c04df 3045eb64
00000073-6c3938e8-9c16-47cb-af0c-ceabb709efe9 c34278de
00000074-c1754c6c-b30f-4f8a-afe1-e747feec286b caa6a035
00000075-266055c2-761d-4fa6-a95f-52e16843cb2a e42c70f1
00000076-b919976d-2867-4898-8ae0-df49cd08b5f4 cf98380c
00000077-680bb8df-2948-4653-a7d9-35111d023cd6 9ce537d4
00000078-1bd34543-3c3f-4b86-a0bc-d0eec486e32d 40b267c8
00000079-929c0dbc-e594-408d-ae46-9f8c48db6464 8e426d92
00000080-afaaa8ec-e984-430b-8144-f907cbde345f 82e15350
00000081-7b421c61-d72d-4f47-b38f-d3bc6b39211c f46b318f
00000082-e4c909ce-4f7d-4a91-82d4-988eb4cded30 0938c27c
00000083-100b92e8-3882-40ab-9305-687e3e8a9b23 40915ea9
00000084-54a5f2a4-23ce-46e5-a4ce-75599c6389ad 1e1f14af
00000085-6f1d96a7-9fc6-44b2-8cbd-320b48ce2f9d 8f069715
00000086-74234297-f178-4e96-87f3-efe4587a93c7 e3429a28
00000087-972a6f38-f1c4-4bbe-821f-cacaedfa6862 a5942bb4
00000088-1eaafa10-2479-476c-ad98-51c513e48dab 7d639146
00000089-10fde303-c2cf-4246-ae8d-11dd887a41a6 8f05ea0a
00000090-263cb74a-b660-4724-b809-ea0dee79b8fe 1ab3717b
00000091-789c033c-6dc5-425d-9394-3bdc0f7d8436 47cbb987
00000092-b93d8170-9d39-4596-8280-a332fa5c3273 e774d649
00000093-f935af68-fa32-454f-8602-2cd67fb00d3a 2a4104cf
00000094-ed8fab8b-c841-430c-82c6-3ebe2470321f 14f304b8
00000095-a6e187a1-154e-40dc-911e-b3d1cec10cbd 5fc1c140
00000096-51b8491a-fa6d-47bd-b465-7d59d6af797e 91442699
00000097-920120a8-5012-45a2-b039-7400fb81bd4d d656b0f6
00000098-3a086835-758f-43aa-b571-05cd227e4cb4 0ce4a285
00000099-806d5ed1-80e3-44b0-9ee8-b11a6b7067a6 cec25d7c
00000100-78d0dbee-60d0-4957-839e-25661e711c9e 7ea2894b
00000001-ce794cb5-bf07-447c-b92b-7097036cce13 d9d2a9c8
00000002-e23ba9f3-7721-4295-a2b6-45c1cc88489b d3214e01
00000003-029452c2-9c96-4096-81b1-2ec51ffcd802 75521e11
00000004-3983f6b1-a569-48c8-a18e-8aed18d38a1b 1c8e256f
00000005-69dcdd06-741f-4c36-91cb-fcf0c8d5f303 ac710e78
00000006-59ebb5fe-55fd-4877-8c53-65a427efbf90 38f9484a
00000007-cd9e9742-be34-4990-8076-82c94c77cda6 2826fb6a
00000008-6383a6b8-816f-410f-8396-b3ea87747c55 145c697a
00000009-131498d1-4912-434a-88e6-14d55ee27dc1 ffadf117
00000010-66257be8-95ac-4859-84ad-45cb22c22235 dd544ab0
00000011-d7ba0821-cd6c-4b57-9380-2eb164ab74cb 175c19de
00000012-d0efb567-9dae-40e1-9c07-ae7ec9d1b4a1 5376dbf3
00000013-8cbdc35b-2b30-427e-b1e0-31168ca5e15e 058a2002
00000014-9697c635-4787-48a3-8fc6-235999d8fb26 f3c310c5
00000015-97bf81c2-f035-42a2-9673-b9a31a9b03b1 ab2fc992
00000016-34c9e77c-5100-40e0-8744-3b611e3788b6 12a49940
00000017-f70b79e9-40bc-4d56-b047-fa4be3fdfd19 38f6aa66
00000018-c7e5951a-e5b6-4aae-ba37-101a6f99d068 e8f749e8
00000019-a44b52e4-08df-4c39-a737-850c358325fd b604f50b
00000020-69ba1850-7114-406c-8b11-87baaa592350 7be49ed5
00000021-a57536ad-5672-477e-aa6d-8ae0f1afde5b bf15f3a3
00000022-6af6acdb-0bac-4957-bed0-12692b36b9d0 4ec344f1
00000023-acf07f03-6468-410f-950d-f0c7bcd02427 0200770d
00000024-c7d103d3-7f4d-4c3e-9f3e-a84a75631c22 09fcb527
00000025-549b26b8-04a8-48da-b5b9-a3728ac79a53 0b35e214
00000026-999e281a-eb54-480b-9301-560a65722cb9 f112dc1c
00000027-0f537214-fc3c-4fb2-b593-26815cc1d4f6 647de749
00000028-60fd114d-5269-48e6-abaf-f0d1231e8b33 ab6e9e9a
00000029-72fe476f-3b37-4332-8b49-b3280c891f6c 273a4847
00000030-8730b9da-9a13-4207-82b3-d8e6d2641a45 edb4bba7
00000031-6461b4a0-99d7-4265-a287-8d2e11ac9b99 a62a4dcf
00000032-dd557578-6939-4f2c-ac58-14bfbd2e0622 efb31b39
00000033-90bac22a-9396-40b6-9e1f-e430cc80caaa 57c9bf0d
00000034-d6412340-7aa3-4d68-bb81-29bab02fdd41 89406ddc
00000035-e9a06c7e-38fc-4557-9d1b-87e99c539473 6f035449
00000036-94b8b410-5d22-4859-a4a1-1555d0f296bb 55bfc645
00000037-94043acc-0270-441f-8bac-0928019e9b96 4eb516cd
00000038-5851a6b5-741f-4019-8126-6f9219074ead 1a0b135a
00000039-0b897b0d-f9a0-4c85-8d36-ae4fd54be52f eb802b56
00000040-9c8de511-adf5-4b6f-9c9a-0236a151e3ac 5cf633c8
00000041-db5fb9d6-00e6-4d4e-9d0c-9ef3578423f3 b5bf6d56
00000042-130906c0-0031-401d-8b33-536e84381b61 d457a5cd
00000043-98d53899-bc95-48da-a187-cff90df3ed20 d806b5e0
00000044-fcf4e0fd-2611-4cf2-846f-61c9a87d2b41 f890a3c4
00000045-5463db12-f9c4-4d9b-8dbd-965ab1847baf c1c8a96d
00000046-7a5caea1-6eca-44b3-bbf6-7ee375aa26c9 b8bd443b
00000047-0f02dc09-c7ca-4515-883c-703bc1ebea3c 6d4a58db
00000048-4899ddb7-6573-4ca0-abea-84e195abaca4 e63c2cc0
00000049-ae89ae76-5454-4cdd-90fc-1953e8058f32 7c8c4f49
00000050-9f6ee905-e256-454f-822b-32d7d6de7d85 783e3d16
00000051-682cfcbd-8189-4c12-86b5-656fbbf5a15c 877312a3
00000052-658c6149-e308-4826-b4ca-fe0baa7c9114 4ec8ad9b
00000053-a98ed12b-186e-4e9f-a5a4-0fe19bb13e01 36b5f6fc
00000054-3ea04a22-a9e3-49dd-ae48-e95ac47c6e6f f3ab13e1
00000055-0b409b24-afd9-44d5-bed4-b71b86f51cc5 104f5428
00000056-9767e841-4b32-40fa-ba0a-554086c4af92 88ad9fba
00000057-054cb7b5-267c-4ba5-9243-c0d83add9fd1 69ec41c8
00000058-45881491-ba34-4d36-bfe3-76c6a8275aae b36453b9
00000059-7313649a-90ef-40e2-b402-bb6edf5b4126 3b9ae7a6
00000060-e455b89f-8a47-46c9-ab4d-91d475eb83e9 b8728c23
00000061-fee78490-d8c5-430d-8830-7ba98bbccf71 5e328857
00000062-1389119d-d0e7-48fc-b6fa-d1ace65596e6 57df1303
00000063-3e1c7717-e1eb-45ab-9ca0-55a85e251a72 ee0fbe45
00000064-af2c1181-157a-4e4b-b550-f85da68f45e5 bb705021
00000065-acbcfd8f-a923-4bc5-8490-6e23b6889666 9b7bc8ae
00000066-b4a7e7c9-2367-4698-b70f-f55f9f3b454c 3ad2330a
00000067-f843dca2-6718-492c-a8d7-506060e6c616 70971518
00000068-8fafe0b2-17f6-4bcf-8742-30a67e76f378 2f8adeab
00000069-bad01b22-e984-4e93-9d9e-f3be86bad416 35d0746d
00000070-6bb5c982-ad15-42b4-9883-5cd6f95150b4 ae6329dc
00000071-226cd60d-f126-404f-8494-0e4c4fe262ba 07aa1e1a
00000072-992c3e47-4291-4c9b-9559-730faac3c4cd 80e49e66
00000073-309cda22-c27c-4288-9180-d46164371cfe b942e9e9
00000074-645b46a7-ec44-4303-9db7-13497bd718ac 88428147
00000075-74f2ce37-6f41-4081-8295-e227cd002633 4e3002ad
00000076-5b6dda49-b11f-4c50-9660-995338b100ad d388ac00
00000077-a5cfe516-12a6-47d4-bc7a-fc0a7a243dd6 e1a55a02
00000078-92192045-396d-4511-8d30-6407e265b589 ee355ccd
00000079-359ba048-4338-4e7f-b31c-8a2f40c807d3 9ac8190e
00000080-e227191c-95af-4d64-a091-6cc3f7224e2e 917dcbe7
00000081-bdee7601-2895-41dc-b10d-0cf2d514c6b8 6ce69e80
00000082-3ce0d5d1-9003-4771-95a3-368dc584bc83 61901651
00000083-7433859c-c908-497b-9586-6eeb9a36a5d6 e2d87a4b
00000084-177ba9a7-7ee0-4915-8450-a34ad460ce4a ec1eed18
00000085-9455e65e-5d61-4a72-a849-5e837f045b96 5e583ec7
00000086-7f053ffe-e659-456b-a9b8-b67f1985c9ae d3370d16
00000087-dab10d38-13e7-4bfc-b20a-81b20fdc4a8f cddadf5a
00000088-e2898ec9-e2a3-468c-9dec-0d7773d6264e b56ace7d
00000089-8934879d-1d33-4a4f-bd1c-024df94cdcdc db5957a9
00000090-d66ca7b9-10de-476e-8c54-e5402c0c8eb5 cf2b931a
00000091-4017535e-4aed-4d88-8bb0-d505fdb2e2d4 caa990ff
00000092-1f8b8f30-6ad6-4f38-ac85-785892080fd3 b5ec57ff
00000093-1f623269-51df-415c-91c8-62907c45669b 785685a8
00000094-d0f5cc3c-cd6d-44f9-b2ed-5385f5625915 58afcf7e
00000095-c48b7e17-6c71-43fe-bad5-8fb61cf553ed 6939db7f
00000096-ec212aba-8e9f-4582-8d09-08846c629932 05231a80
00000097-ee19495c-8bbd-4bc6-93ea-7eb0e1d19ece 302ca97d
00000098-f3c98983-6a3f-46f8-890f-7db57218e761 6894c65e
00000099-3131bdbc-ee1a-4383-8503-35e6d4d3b6c9 6fc40d80
00000100-9e404e09-8054-43ca-a480-80d6986939ca 373f808a

View File

@@ -8,12 +8,18 @@
// Program se prevede z
// gcc uuid-gen.c -lz
union serial_union // za razbijanje serijske na posamezne bajte
{
uint32_t serial; // serijska
uint8_t bytes[4]; // za CRC32, ki pričakuje posamezne bajte
};
// struktura, ki skupaj poveze serijsko, nakljucni uuid in CRC32
struct uuid_uint128
{
uint8_t uuid_byte[16];
char serial;
union serial_union serial;
uint32_t crc;
};
@@ -25,13 +31,13 @@ void get_uuid(struct uuid_uint128 *uuid)
// N = varianta (0b10xx)
// byte maske za te vrednosti
static char serial = 1;
static uint32_t serial = 1;
const uint8_t version_mask_or = 0x40;
const uint8_t version_mask_and = 0x0F;
const uint8_t variant_mask_or = 0x80;
const uint8_t variant_mask_and = 0x3F;
uuid->serial = serial++; // nastavimo naslednjo serijsko
uuid->serial.serial = serial++; // nastavimo naslednjo serijsko
for (int c = 0; c < sizeof(uuid->uuid_byte); c++)
@@ -49,7 +55,7 @@ void get_uuid(struct uuid_uint128 *uuid)
// Zlib ima implementacijo CRC-32
// Glej https://refspecs.linuxbase.org/LSB_3.0.0/LSB-Core-generic/LSB-Core-generic/zlib-crc32-1.html
uuid->crc = crc32(0, Z_NULL, 0); // inicializacija
uuid->crc = crc32(uuid->crc, &uuid->serial, 1); // dodamo serijsko
uuid->crc = crc32(uuid->crc, uuid->serial.bytes, sizeof(uuid->serial.bytes)); // dodamo serijsko
uuid->crc = crc32(uuid->crc, uuid->uuid_byte, sizeof(uuid->uuid_byte)); // dodamo vse byte UUIDja
};
@@ -57,7 +63,7 @@ void print_uuid(struct uuid_uint128 uuid)
{
// funkcija je samo alias za ta dolgovezni printf
printf("%08d-%02x%02x%02x%02x-%02x%02x-%02x%02x-%02x%02x-%02x%02x%02x%02x%02x%02x %08x\n",
uuid.serial,
uuid.serial.serial,
uuid.uuid_byte[0],
uuid.uuid_byte[1],
uuid.uuid_byte[2],
@@ -82,7 +88,7 @@ int main(void)
{
srand(time(NULL)); // seed RNG
struct uuid_uint128 uuid;
for (int i = 0; i < 100; i++) // zaradi racunanja serijske in CRC je maksimum 255 iteracij
for (int i = 0; i < 100; i++)
{
get_uuid(&uuid);
print_uuid(uuid);