1. 亂數的重要性與CSPRNG
亂數(Random Number)是無法預測的數值,對加密、資安、遊戲與模擬至關重要。一般亂數產生器產生的是演算法生成的偽亂數(Pseudo-Random),若已知種子值(seed)則可被預測。在資安要求較高的情境下,應使用CSPRNG(密碼學安全偽亂數產生器, Cryptographically Secure Pseudo-Random Number Generator)。PHP的random_bytes()與random_int()屬於CSPRNG,使用/dev/urandom或CryptGenRandom。JavaScript提供crypto.getRandomValues(),運用瀏覽器的熵(entropy)來源。一般的Math.random()不適合用於安全用途,絕對不可用來產生權杖(token)、工作階段ID或加密金鑰。