Попытка улучшить Math.random () в браузере - PullRequest
0 голосов
/ 25 апреля 2018

Ища небольшой совет специалиста по этому вопросу, мои знания о криптографии в лучшем случае поверхностны.

Мне интересно, является ли это жизнеспособным решением для генерации криптографически безопасных случайных чисел.Точнее, мне интересно, если использование Math.abs () или Math.sin () для ограничения числа уменьшит случайность числа, получаемого из crypto.getRandomValues, настолько, что оно больше не будет полезно для шифрования.


if(window.crypto && window.crypto.getRandomValues) {

 Math.random = () => {

   var array = new Uint32Array(1)

   window.crypto.getRandomValues(array)

   return Math.abs(Math.sin(array[0]))

 }

}

console.log(Math.random())

jsfiddle: https://jsfiddle.net/mg7ftm7w/

примечание: я тестировал этот фрагмент только в Chrome.Я не думаю, что объект window.crypto присутствует в IE.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...