我知道如何使用 Runes & seeding rand.Init 在 go 中生成一個(gè)隨機(jī)字符串time.UnixNano()。我的問題是,是否可以(使用 stdlib)在不使用當(dāng)前時(shí)間戳(安全)的情況下播種 rand?此外,我問因?yàn)椴恢皇且揽繒r(shí)間為敏感操作生成隨機(jī)字符串不安全/漏洞嗎?
2 回答

德瑪西亞99
TA貢獻(xiàn)1770條經(jīng)驗(yàn) 獲得超3個(gè)贊
對(duì)于敏感操作,請(qǐng)使用crypto/rand
而不是math/rand
:
包 [crypto/] rand 實(shí)現(xiàn)了一個(gè)加密安全的隨機(jī)數(shù)生成器。
請(qǐng)注意,您不需要(不能) seed?crypto/rand
。

精慕HU
TA貢獻(xiàn)1845條經(jīng)驗(yàn) 獲得超8個(gè)贊
你可以用任何東西作為種子,它只需要一個(gè)整數(shù)。時(shí)間是常用的,因?yàn)樗鼤?huì)改變,而且沒有很多好的隨機(jī)種子來源不是恒定的——如果你使用相同的種子,你會(huì)得到相同的值序列,所以通常你想要一些改變的東西.
不安全嗎?絕對(duì)地!如果您需要安全的隨機(jī)數(shù)生成,則必須改用crypto/rand
crypto/rand
不提供播種方法,因?yàn)樗鞘褂孟到y(tǒng)的加密強(qiáng)隨機(jī)數(shù)生成器播種的。
- 2 回答
- 0 關(guān)注
- 153 瀏覽
添加回答
舉報(bào)
0/150
提交
取消