首頁 > 後端開發 > Golang > 主體

Golang 加密/蘭德線程安全嗎?

王林
發布: 2024-02-09 12:45:08
轉載
964 人瀏覽過

Golang 加密/兰德线程安全吗?

Golang是一種程式語言,它以其高效性和並發性而聞名。然而,關於Golang的加密和執行緒安全性一直是開發者關注的重點。在這篇文章中,php小編香蕉將分享關於Golang加密和Golang線程安全性的一些觀點和建議。我們將探討Golang在加密方面的特性,以及如何確保執行緒安全性,以幫助開發者更好地理解並應用Golang。無論你是初學者還是有經驗的開發者,這篇文章都將為你提供有價值的資訊和指導。

問題內容

math/rand.rand 的來源指出 read 不是執行緒安全的(共享來源時)。加密/蘭特怎麼樣?原始程式碼指出它使用 getrandom(2)/dev/urandom,但尚不清楚並發呼叫會發生什麼。

更新:評論有助於澄清區別

crypto/rand.Reader.Read(b []byte)
crypto/rand.Read(b []byte)
登入後複製

線程安全:

  1. 並發呼叫read會panic嗎?
  2. 並發呼叫時會保持隨機序列嗎?或者可以向並發呼叫者提供重複的內容嗎?

解決方法

  1. rand.Reader 來自crypto/rand 必須對於並發存取是安全的,因為它被定義為「加密安全隨機數產生器的全局共享實例」。無法在套件之間同步其使用。
  2. rand.Read 來自crypto/rand 是安全的,因為rand.Reader 是安全,而且它不會訪問任何其他共享狀態。

以上是Golang 加密/蘭德線程安全嗎?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
來源:stackoverflow.com
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
最新問題
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!