Heim > Backend-Entwicklung > Golang > Ist der Golang-Krypto-/Rand-Thread sicher?

Ist der Golang-Krypto-/Rand-Thread sicher?

王林
Freigeben: 2024-02-09 12:45:08
nach vorne
1062 Leute haben es durchsucht

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

Golang ist eine Programmiersprache, die für ihre Effizienz und Parallelität bekannt ist. Allerdings standen die Verschlüsselung und Thread-Sicherheit von Golang schon immer im Fokus der Entwickler. In diesem Artikel teilt der PHP-Editor Banana einige Meinungen und Vorschläge zur Golang-Verschlüsselung und Golang-Thread-Sicherheit. Wir werden die Verschlüsselungsfunktionen von Golang untersuchen und erfahren, wie Thread-Sicherheit gewährleistet werden kann, um Entwicklern dabei zu helfen, Golang besser zu verstehen und anzuwenden. Egal, ob Sie Anfänger oder erfahrener Entwickler sind, dieser Artikel bietet Ihnen wertvolle Informationen und Anleitungen.

Die Quelle des Frageninhalts

math/rand.rand gibt read 不是线程安全的(共享源时)。加密/兰特怎么样?源代码指出它使用 getrandom(2)/dev/urandom an, aber es ist nicht klar, was bei gleichzeitigen Anrufen passiert.

Update: Kommentar hilft, den Unterschied zu verdeutlichen

crypto/rand.Reader.Read(b []byte)
crypto/rand.Read(b []byte)
Nach dem Login kopieren

Fadensicherheit:

  1. Werden gleichzeitige Anruferead in Panik geraten?
  2. Wird die zufällige Reihenfolge bei gleichzeitigen Aufrufen beibehalten? Oder können gleichzeitigen Anrufern doppelte Inhalte bereitgestellt werden?

Lösung

  1. rand.Reader 来自 crypto/rand MUSS für den gleichzeitigen Zugriff sicher sein, da es als „globale gemeinsame Instanz eines kryptografisch sicheren Zufallszahlengenerators“ definiert ist. Es gibt keine Möglichkeit, die Verwendung zwischen Paketen zu synchronisieren.
  2. rand.Read 来自 crypto/rand 是安全的,因为 rand.Reader ist sicher und greift nicht auf andere freigegebene Zustände zu.

Das obige ist der detaillierte Inhalt vonIst der Golang-Krypto-/Rand-Thread sicher?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:stackoverflow.com
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage