Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Adakah Golang crypto/rand thread selamat?

Adakah Golang crypto/rand thread selamat?

王林
王林ke hadapan
2024-02-09 12:45:08968semak imbas

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

Golang ialah bahasa pengaturcaraan yang terkenal dengan kecekapan dan kesesuaiannya. Walau bagaimanapun, penyulitan dan keselamatan benang Golang sentiasa menjadi tumpuan pembangun. Dalam artikel ini, editor PHP Banana akan berkongsi beberapa pendapat dan cadangan tentang penyulitan Golang dan keselamatan benang Golang. Kami akan meneroka ciri penyulitan Golang dan cara memastikan keselamatan rangkaian untuk membantu pembangun lebih memahami dan menggunakan Golang. Sama ada anda seorang pemula atau pembangun berpengalaman, artikel ini akan memberikan anda maklumat dan panduan yang berharga.

Sumber kandungan soalan

math/rand.rand menyatakan read 不是线程安全的(共享源时)。加密/兰特怎么样?源代码指出它使用 getrandom(2)/dev/urandom, tetapi tidak jelas perkara yang berlaku dengan panggilan serentak.

Kemas kini: Komen membantu menjelaskan perbezaannya

crypto/rand.Reader.Read(b []byte)
crypto/rand.Read(b []byte)

Keselamatan benang:

  1. Adakah panggilan serentakread panik?
  2. Adakah urutan rawak akan dikekalkan apabila dipanggil serentak? Atau bolehkah kandungan pendua disampaikan kepada pemanggil serentak?

Penyelesaian

  1. rand.Reader 来自 crypto/rand MESTI selamat untuk akses serentak kerana ia ditakrifkan sebagai "contoh perkongsian global bagi penjana nombor rawak selamat secara kriptografi". Tiada cara untuk menyegerakkan penggunaannya antara pakej.
  2. rand.Read 来自 crypto/rand 是安全的,因为 rand.Reader selamat dan ia tidak mengakses mana-mana negeri kongsi lain.

Atas ialah kandungan terperinci Adakah Golang crypto/rand thread selamat?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Artikel ini dikembalikan pada:stackoverflow.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam