![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 130 Pomógł: 0 Dołączył: 18.09.2021 Ostrzeżenie: (0%) ![]() ![]() |
Hej. Mam bazę ok. 2mln rekordów. Każdemu chcę nadać indywidualny, losowy hash skłądający się z 5-ciu cyfr lub małych i dużych znaków. Stworzyłem coś takiego:
Z początku działa szybko (wiadomo, nie ma jeszcze tyle hashy co się powtarzają) ale pod koniec wolniej. Na obecnej maszynie oszacowałem czas wykonywania się tego kody na 50-100 godzin. Jak mogę to zoptywalizować? |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 130 Pomógł: 0 Dołączył: 18.09.2021 Ostrzeżenie: (0%) ![]() ![]() |
Próbowałem i nestety generuje multum powtórzeń. MD5 daje wynik heksadecymalny a zatem pole hash ma 5^16 = 1 048 576 możliwości, mniej niż moja baza danych. Ciąg znaków składający się z 0-9, a-z i A-Z (58 różnych znaków) czyli 58^5 = 656 356 768 (ok. 300 razy za dużo) daje ok 3 powtórzeń przy generowaniu końcowych hashy porcjami po 1000.
Ten post edytował DNMX 6.01.2023, 22:36:15 |
|
|
![]() ![]() |
![]() |
Aktualny czas: 15.10.2025 - 12:39 |