Wie kann ich eine zufällige Hexadezimalzahl mit einer Länge meiner Wahl mit C# erzeugen?Zufällig generierte Hexadezimalzahl in C#
Antwort
static Random random = new Random();
public static string GetRandomHexNumber(int digits)
{
byte[] buffer = new byte[digits/2];
random.NextBytes(buffer);
string result = String.Concat(buffer.Select(x => x.ToString("X2")).ToArray());
if (digits % 2 == 0)
return result;
return result + random.Next(16).ToString("X");
}
Random random = new Random();
int num = random.Next();
string hexString = num.ToString("X");
random.Next() nimmt Argumente, die Sie min und einen maximalen Wert angeben lassen, das ist so, wie Sie die Länge steuern würde.
hängt davon ab, wie zufällig Sie es wollen, aber hier sind 3 Alternativen: 1) Normalerweise verwende ich nur Guid.NewGuid und wählen Sie einen Teil davon aus (abhängig davon, wie große Zahl ich will).
2) System.Random (siehe andere Antworten) ist gut, wenn Sie nur 'zufällig genug' wollen.
3) System.Security.Cryptography.RNGCryptoServiceProvider
Aufschneiden einer GUID scheint wie a Wirklich schlechte Idee zu mir. Sie sind nur als Ganzes genommen einzigartig. Viele Teile einer GUID sind sicherlich nicht zufällig. – spender
@spender ist korrekt, zum Beispiel enthalten viele GUIDs die MAC-Adresse des PCs, der sie erzeugt. –
Eh, nein, die auf Mac-Adressen basierenden Guids wurden im Jahr 2000 zurückgezogen, da sie als potentielles Sicherheitsproblem betrachtet wurden. GUIDs werden jetzt von einem Zufallszahlengenerator erzeugt (122 Bits zufällig, 6 Bits nicht zufällig). In jedem Fall ergibt die Verwendung eines 32-Bit-Segments einer GUID eine zufälligere Zahl als System.Random. Das ist - es sei denn, Sie rufen UuidCreateSequential, die für die Abwärtskompatibilität hinzugefügt wurde, falls jemand alte Stil Guids wollen, aber das ist eine andere Geschichte. – KristoferA
Hier ist eine, die einen 256-Bit-Hex-String (8x8 = 256) zurückkehren würde:
private static string RandomHexString()
{
// 64 character precision or 256-bits
Random rdm = new Random();
string hexValue = string.Empty;
int num;
for (int i = 0; i < 8; i++)
{
num = rdm.Next(0, int.MaxValue);
hexValue += num.ToString("X8");
}
return hexValue;
}
- 1. konvertieren Hexadezimalzahl in Octal in c
- 2. Python zufällig generierte IP-Adresse der Zeichenfolge
- 3. Hexadezimalzahl in Javascript formatieren
- 4. json codiert zufällig generierte Zahl ist immer gleich auf IE8
- 5. C# Zufällig (Long)
- 6. zufällig generierte Fragen: i zufällig Fragen mit JPQL generieren möchten fragt
- 7. Wie 52 zufällig generierte Zahlen auf der Konsole gedruckt werden?
- 8. Konvertiere Hexadezimalzahl in Delphi in den Dezimalwert
- 9. Einsatz urls Markup in Textzeichenfolge zufällig C#
- 10. Berechnen mit zufällig generierten Zahlen in C++
- 11. Padding Null für Hexadezimalzahl in PHP
- 12. Format Byte als eine zweistellige Hexadezimalzahl
- 13. Wie: Generierte C++ - Quelldateien kompilieren?
- 14. So stylen Sie eine zufällig generierte Liste von Elementen in Javascript
- 15. Wie zeige ich eine zufällig generierte Liste in Spalten mit CSS an?
- 16. Prozedural generierte UVs
- 17. Wie schreibe ich mehrere Textfelder in eine Programm generierte TXT-Datei in C#?
- 18. C-Präprozessor, der für generierte Funktionsnamen definiert
- 19. npm zufällig auf Windows
- 20. Best C++ Weg zufällig Position des gesetzten Bits in Bitset
- 21. JLabels, die zufällig ausfüllen
- 22. Zufällig generierte Zahlen funktionieren nicht, nachdem die While-Schleife angewendet wurde.
- 23. Lesen Sie eine Hexadezimalzahl und validieren Sie ihre Anzahl an Ziffern in C
- 24. Wie formatiert unsigned int in 8-stellige Hexadezimalzahl?
- 25. Wie konvertiert man eine hexadezimale Zeichenkette in Hexadezimalzahl
- 26. android.os.TransactionTooLargeException zufällig
- 27. Zufällig einfügen NAs in Datenrahmen proportional
- 28. GCC generierte Assembly entspricht Continue-Anweisung in C
- 29. Ansicht Generierte Quelle (nach AJAX/JavaScript) in C#
- 30. Thema stoppt zufällig in Python
Es wird nur funktionieren, wenn 'Länge <= 8 'als' int.MaxValue 'passt in 8 Hex-Ziffern. –
Wenn er wirklich möchte, dass die hexadezimale Zeichenfolge eine Länge seiner Wahl hat, benötigen Sie Code, der die minimale Zahl mit hex Länge 'x' und maximal mit Länge 'x' berechnet. – colithium
Ja. Ich habe das absichtlich weggelassen, aber Sie müssten im Grunde nur eine Konvertierung auf 0xF machen? (Entschuldigen Sie meinen regulären Ausdruck), um die ganze Zahl zu finden, die Ihrer gewünschten Länge entspricht. – womp