Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [MySQL][PHP] Niepowtarzalny ciąg znaków
lekosm2
post
Post #1





Grupa: Zarejestrowani
Postów: 141
Pomógł: 0
Dołączył: 9.10.2015

Ostrzeżenie: (0%)
-----


Witam, chciałbym zrobić podczas dodawania rekordu do bazy unikalny identyfikator, który składał się będzie z jakiegoś ciągu(najlepiej 8 znaków) dużych liter i cyfr. Na początku myślałem, że się da zrobić auto_increment, który składa się z liter i cyfr, ale nie da się takiego zrobić. Ważne jest, by ten ciąg znaków się nigdy nie powróżył.
Pomożecie? Z góry dziękuję i pozdrawiam.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 6)
Szymciosek
post
Post #2





Grupa: Zarejestrowani
Postów: 1 168
Pomógł: 126
Dołączył: 5.02.2010
Skąd: Świdnica

Ostrzeżenie: (0%)
-----


Słowo klucz: UUID

https://en.wikipedia.org/wiki/Universally_unique_identifier
https://www.uuidgenerator.net/

pomogło? smile.gif
Go to the top of the page
+Quote Post
lekosm2
post
Post #3





Grupa: Zarejestrowani
Postów: 141
Pomógł: 0
Dołączył: 9.10.2015

Ostrzeżenie: (0%)
-----


No ten UUID, co podałeś to taki jakiś skomplikowany, myślałem nad czymś bardziej prostszym coś w stylu "D4BI8Z6B" - 8 znakowe.
Go to the top of the page
+Quote Post
viking
post
Post #4





Grupa: Zarejestrowani
Postów: 6 380
Pomógł: 1116
Dołączył: 30.08.2006

Ostrzeżenie: (0%)
-----


http://hashids.org/
Możesz wykorzystać sekwencję z bazy dla rekordu.

Albo np http://framework.zend.com/manual/current/e...troduction.html
Albo od razu http://php.net/manual/en/function.random-bytes.php

Ten post edytował viking 29.05.2016, 20:23:39


--------------------
Go to the top of the page
+Quote Post
lekosm2
post
Post #5





Grupa: Zarejestrowani
Postów: 141
Pomógł: 0
Dołączył: 9.10.2015

Ostrzeżenie: (0%)
-----


A co myślicie o tej funkcji?
http://pl.php.net/manual/pl/function.uniqid.php


A i powiedzcie mi jak zrobić by generowały się DUŻE LITERY w poniższym kodzie?
  1. printf("uniqid(): %s\r\n", uniqid());


@Edit
Znalazłem http://php.net/manual/en/function.strtoupper.php

To teraz mi tylko powiedzcie, czy użycie tej funkcji uniqid() to dobre rozwiązanie. smile.gif

Ten post edytował lekosm2 29.05.2016, 20:45:46
Go to the top of the page
+Quote Post
viking
post
Post #6





Grupa: Zarejestrowani
Postów: 6 380
Pomógł: 1116
Dołączył: 30.08.2006

Ostrzeżenie: (0%)
-----


Wygenerowanie wielu wartości na raz w tym samym czasie może dać identyczne identyfikatory. Jest też podatna na ataki czasowe.


--------------------
Go to the top of the page
+Quote Post
lekosm2
post
Post #7





Grupa: Zarejestrowani
Postów: 141
Pomógł: 0
Dołączył: 9.10.2015

Ostrzeżenie: (0%)
-----


Cytat(viking @ 29.05.2016, 21:57:34 ) *
Wygenerowanie wielu wartości na raz w tym samym czasie może dać identyczne identyfikatory. Jest też podatna na ataki czasowe.


Wygenerowany kod ma służyć w celu identyfikacji odcisku palca dla postaci w grze, więc nie stawiam na bezpieczeństwo.
Co do wygenerowana w tym samym czasie takich samych, to wątpię w to bo kilku użytkowników jednocześnie musiało stworzyć postać, a to mało prawdopodobne.

Dziękuję za wszystkie odpowiedzi, problem rozwiązany.
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 22.08.2025 - 04:44