Безопасно ли window.crypto.getRandomValues
использовать в качестве секретного ключа для шифрования AES?
Это мой код для генерации секретного ключа:
let key = "";
var array = new Uint32Array(10);
window.crypto.getRandomValues(array);
for(let num of array){
key += num.toString();
}
key = key.substring(0, 20);
РЕДАКТИРОВАТЬ Вот ответ
Не используйте getRandomValues () для генерации ключей шифрования. Вместо этого используйте метод generateKey (). Есть несколько причин для этого; например, getRandomValues () не гарантированно работает в безопасном контексте. Не существует минимальной степени энтропии, предписанной спецификацией веб-криптографии. Вместо этого пользовательским агентам настоятельно рекомендуется обеспечивать наилучшую энтропию, которую они могут при генерации случайных чисел, используя четко определенный, эффективный генератор псевдослучайных чисел, встроенный в сам пользовательский агент, но затравленный значениями, взятыми из внешнего источника псевдослучайных чисел, такого как Платформо-специфическая c функция случайных чисел, устройство Unix / dev / urandom или другой источник случайных или псевдослучайных данных.