我知道如何使用 Runes & seeding rand.Init 在 go 中生成一個隨機字符串time.UnixNano()。我的問題是,是否可以(使用 stdlib)在不使用當前時間戳(安全)的情況下播種 rand?此外,我問因為不只是依靠時間為敏感操作生成隨機字符串不安全/漏洞嗎?
2 回答

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

精慕HU
TA貢獻1845條經驗 獲得超8個贊
你可以用任何東西作為種子,它只需要一個整數。時間是常用的,因為它會改變,而且沒有很多好的隨機種子來源不是恒定的——如果你使用相同的種子,你會得到相同的值序列,所以通常你想要一些改變的東西.
不安全嗎?絕對地!如果您需要安全的隨機數生成,則必須改用crypto/rand
crypto/rand
不提供播種方法,因為它是使用系統的加密強隨機數生成器播種的。
- 2 回答
- 0 關注
- 146 瀏覽
添加回答
舉報
0/150
提交
取消