雖說過往可以使用 Math.random() 來產生一些亂數,但安全性確實是有待加強,以致於在弱點掃描時會列為一個改善點。因此這回改使用 window.crypto.getRandomValues() 來存取,希望能改善一下狀況。
程式碼
1 2 3 4 5 6 |
// 生成一個 0~1 之間的 float number export const getSafeRandomNumber = function ():number { const randomBuffer: Uint32Array = new Uint32Array(1) window.crypto.getRandomValues(randomBuffer) return randomBuffer[0] / (0xFFFFFFFF + 1) } |
參考資料
1. 使用 window.crypto.getRandomValues 取代不安全的 Math.random
2. Crypto.getRandomValues()