Random String Generator FAQ

Generate random alphanumeric strings

Co sprawia, że losowy ciąg znaków jest bezpieczny?

Bezpieczny losowy ciąg znaków wymaga trzech elementów: kryptograficznie bezpiecznego generowania liczb losowych (użycie crypto.getRandomValues() lub odpowiednika, nie Math.random()), wystarczającej entropii (co najmniej 128 bitów dla tokenów uwierzytelniających) i właściwego obchodzenia się z danymi (transmisja przez HTTPS, haszowane przechowywanie w razie potrzeby). Kombinacja nieprzewidywalnego generowania i odpowiedniej długości sprawia, że ataki zgadywania są obliczeniowo niewykonalne.

Jak długi powinien być mój losowy ciąg znaków?

Długość zależy od Twojego zestawu znaków i wymaganej entropii. Dla tokenów uwierzytelniających używających wszystkich drukowanych znaków ASCII (94 znaki, 6,55 bita na znak), 20 znaków zapewnia 131 bitów entropii - wysoko bezpieczne. Dla tylko alfanumerycznych (62 znaki, 5,95 bita na znak), użyj 22 znaków dla podobnej entropii. Identyfikatory sesji potrzebują minimum 112-128 bitów. Dane testowe mogą używać krótszych ciągów, ponieważ bezpieczeństwo nie jest problemem.

Czy powinienem wykluczyć niejednoznaczne znaki?

Wyklucz niejednoznaczne znaki (0/O, 1/l/I), jeśli ludzie będą czytać lub wpisywać ciągi znaków. Dla kodów potwierdzenia, kodów zapasowych lub ręcznie wprowadzanych wartości wykluczenie tych znaków zapobiega błędom użytkowników. Dla czysto wewnętrznych tokenów, których użytkownicy nigdy nie widzą, włącz wszystkie znaki dla maksymalnej entropii. Utrata entropii jest minimalna - około 0,12 bita na znak.

Jakiego zestawu znaków powinienem użyć dla kluczy API?

Dla kluczy API użyj alfanumerycznych (a-z, A-Z, 0-9), co daje 62 znaki i szeroką kompatybilność. Działa to w nagłówkach HTTP, JSON i większości plików konfiguracyjnych bez escapowania. Celuj w co najmniej 32 znaki (190 bitów entropii) dla długoterminowych kluczy z szerokimi uprawnieniami. Dodaj znaki specjalne tylko jeśli potrzebujesz dodatkowej entropii i możesz poradzić sobie ze złożonością escapowania.

Czy ten generator jest kryptograficznie bezpieczny?

Tak, nasz generator używa crypto.getRandomValues() z Web Crypto API, który zapewnia kryptograficznie bezpieczne generowanie liczb losowych. Uzyskuje to dostęp do CSPRNG Twojego systemu operacyjnego, który jest seedowany ze źródeł entropii, których atakujący nie mogą przewidzieć. Wygenerowane ciągi znaków są odpowiednie dla aplikacji wrażliwych na bezpieczeństwo, takich jak tokeny uwierzytelniające i identyfikatory sesji.

Czy mogę używać tych ciągów znaków jako ID bazy danych?

Tak, losowe ciągi znaków działają dobrze jako identyfikatory baz danych. Zapobiegają atakom enumeracji (zgadywanie ID dla dostępu do zasobów) i unikają wycieku informacji o liczbie encji lub kolejności tworzenia. Używaj znaków bezpiecznych dla URL (alfanumeryczne plus myślnik/podkreślenie) dla ID, które pojawiają się w URL-ach. Zapewnij wystarczającą długość, aby uniknąć kolizji - co najmniej 16 znaków (95 bitów) dla milionów rekordów. Weź pod uwagę wydajność indeksowania: krótsze ciągi znaków zajmują mniej miejsca i indeksują się szybciej.

Wypróbuj Narzędzie

Generate random alphanumeric strings

Random String Generator