Почему мой Crypto.getRandomValues ​​() Base36 Generator производит дубликаты, несмотря на 2,8 триллиона возможностей?Javascript

Форум по Javascript
Ответить
Anonymous
 Почему мой Crypto.getRandomValues ​​() Base36 Generator производит дубликаты, несмотря на 2,8 триллиона возможностей?

Сообщение Anonymous »

Вот функция: < /p>
export function generateId(): string {
const chars = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ";
let result = "";

const randomArray = new Uint8Array(8);
crypto.getRandomValues(randomArray);

for (let i = 0; i < 8; i++) {
result += chars[randomArray % 36];
}

return result;
}
< /code>
он должен генерировать 8-символ случайных идентификаторов Base36, например, QZ08HNDL. Base36 использует 0-9 и A-Z (36 символов). Если идентификатор составляет 8 символов = 36^8 = ~ 2,8 триллиона возможностей. Насколько это вероятно? Есть ли недостатки в этой функции?

Подробнее здесь: https://stackoverflow.com/questions/797 ... cates-desp
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Javascript»