Ich möchte zufällige int-Werte mit System.Security.Cryptography von 0 bis 26 generieren, wie kann ich das tun? Ich weiß, kann system.random verwenden, um dies zu tun, aber ich möchte System.Security.Cryptography verwendenwie zufälligen int-Wert mit System.Security.Cryptography generieren
Antwort
Dann sollten Sie RandomNumberGenerator
Klasse für diesen Zweck verwenden. Aber pro was Sie geschrieben haben von 0 bis 26 Ich glaube, Sie sollten Random
Klasse für diesen Zweck verwenden.
Für einen speziellen Zweck ein kryptographisches starke Zufallszahlen zu erzeugen, sollten Sie RNGCryptoServiceProvider
Klasse verwenden, die von RandomNumberGenerator
Klasse erbt und bietet Mechanismus für Verschlüsselungszufallszahlen anstelle der Verwendung RandomNumberGenerator
Klasse direkt.
Sie können ein Beispiel in der verknüpften MSDN-Dokumentation sehen.
Sie können dies verwenden, um ein zufälliges int von einem Crypto RNG zu generieren. Ich würde mich jedoch schwer tun, ein Szenario außerhalb der Kryptographie zu erklären, wo solch ein Werkzeug nützlich ist.
RNGCryptoServiceProvider CprytoRNG = new RNGCryptoServiceProvider();
// Return a random integer between a min and max value.
int RandomIntFromRNG(int min, int max)
{
// Generate four random bytes
byte[] four_bytes = new byte[4];
CprytoRNG.GetBytes(four_bytes);
// Convert the bytes to a UInt32
UInt32 scale = BitConverter.ToUInt32(four_bytes, 0);
// And use that to pick a random number >= min and < max
return (int)(min + (max - min) * (scale/(uint.MaxValue + 1.0)));
}
Abgesehen von dem Tippfehler in 'CprytoRNG' (" crypto "ist mein üblicher Täter) ist die bevorzugte Methode,' RandomNumberGenerator rng = RandomNumberGenerator.Create() 'zu verwenden, anstatt direkt vom Typ RNGCryptoServiceProvider abhängig zu sein (es sei denn, Factory wurde über CryptoConfig auf einen Nicht-CSPRNG umgestellt). RandomNumberGenerator.Create() ist in .NET Core vorhanden, die RNGCryptoServiceProvider-Klasse jedoch nicht. – bartonjs
- 1. Generieren von zufälligen Bitfolgen
- 2. Generieren von zufälligen Werten mit eingeschränkten Ziffern
- 3. zufälligen Speicherort für Schaltflächen generieren
- 4. Generieren von zufälligen UUIDs in Linux
- 5. Generieren von zufälligen 6-stelligen Strings
- 6. Generieren Sie einen zufälligen Buchstaben in Python
- 7. System.Security.Cryptography vs PCCRypto
- 8. System.Security.Cryptography nicht gefunden
- 9. Generieren von zufälligen Textzeichenfolgen eines bestimmten Musters
- 10. Generieren von zufälligen Farben in JavaScript
- 11. Generieren von zufälligen Array-Wert Java
- 12. Generieren von zufälligen Dateien in Windows
- 13. Generieren eines großen zufälligen planaren Graphen
- 14. Funktioniert validates_uniqueness_of zum Generieren eines zufälligen Tokens?
- 15. Generieren von zufälligen Ganzzahlen innerhalb des Bereichs mit einer Wahrscheinlichkeitsverteilung
- 16. Algorithmus zum Generieren einer zufälligen Zeichenfolge mit strengen Einschränkungen - Java
- 17. Generieren Sie einen zufälligen Boolean mit gegebener Wahrscheinlichkeit
- 18. Xamarin konnte system.security.cryptography nicht auflösen?
- 19. System.Security.Cryptography und "Bad Data" - Zeichencodierung?
- 20. MD5-Klasse nicht in System.Security.Cryptography
- 21. Generieren von zufälligen Daten in Python passend gegebenen Funktion
- 22. Generieren einer eindeutigen zufälligen Zeichenfolge zum Identifizieren eines Datensatzes
- 23. Generieren eines zufälligen Dateinamens (nur der Name) in Python
- 24. Django-Paket zum Generieren von zufälligen alphanumerischen Zeichenfolgen
- 25. Zufallslänge Zeichenkette mit zufälligen Zeichen
- 26. generieren eine Reihe von zufälligen eindeutigen Zahlen aus einem Intervall
- 27. Generieren Sie einen zufälligen Koordinatenpfad in einem Raster
- 28. Bash-Skript - Generieren von zufälligen Ganzzahlen und Schreiben in Datei
- 29. Generieren von zufälligen IV für AES in Java
- 30. Generieren von zufälligen Werten in Swift zwischen zwei ganzzahligen Werten
@ArtjomB., Es verwendet eine der Provider-Klasse 'RNGCryptoServiceProvider'. Siehe bearbeitete Antwort. Aber ja, es ist so geradlinig wie die 'Random' Klasse. – Rahul
Ja, das Beispiel ist der Kicker, aber Sie sollten im Allgemeinen beschreiben, wie es gemacht wird. –
Poster sollte nicht Random() verwenden, da er eine Zahl von 0 bis 26 generieren möchte. Der Bereich bestimmt nicht die Methode, die Verwendung. Wenn er einen sehr zufälligen Wert in diesem Bereich benötigt, sollte er System.Security.Cryptography dafür verwenden. Anon Cowards Antwort ist ein gutes Beispiel für die Zusammenarbeit. – MadTigger