首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計綜合問答

JS 隨機數防猜測:Math.random() 非加密安全,敏感場景用 Web Crypto API

     編輯:程式設計綜合問答

結論

Math.random() 產生偽隨機數,種子可預測,不可用於驗證碼、Token、密碼、抽獎等安全場景。

安全替代


// 瀏覽器
const arr = new Uint32Array(1);
crypto.getRandomValues(arr);
const secureRandom = arr[0] / 0x100000000; // [0, 1)

// Node.js
const crypto = require('crypto');
crypto.randomBytes(4).readUInt32BE(0) / 0x100000000;

非敏感場景加強

  • 混入時間戳、用戶行為熵:Math.random() + Date.now() + Math.random()。
  • 服務端生成隨機數下發,前端僅展示。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved