versucht, einige PHP-Code in C# zu duplizieren. Der PHP-Code verwendet die uniqid-Funktion mit dem Parameter entropy, der auf "true" gesetzt ist. Irgendeine Idee, wie man das in C# am besten dupliziert?PHP-Äquivalent von uniqid() in C#
Antwort
so etwas wie:
string uniqid(string prefix, bool more_entropy) {
if(string.IsNullOrEmpty(prefix))
prefix = string.Empty;
if (!more_entropy) {
return (prefix + System.Guid.NewGuid().ToString()).Left(13);
} else {
return (prefix + System.Guid.NewGuid().ToString() + System.Guid.NewGuid().ToString()).Left(23);
}
}
Edit: Um Kommentare zu reflektieren
Dies ist eine sehr einfache aus der Spitze von meinem Kopf Lösung, und ich würde vorschlagen, dass für Eine rigorosere Lösung wäre die korrekte Generierung von Zufallszahlen, beispielsweise über den System.Math-Namespace. Bitte beachten Sie diese anderen .
System.Guid.NewGuid(). ToString()
Wollen Sie eine eindeutige Zeichenfolge geben.
Vielen Dank - das ist etwas, was ich dachte, aber ich wollte sicher sein. –
Denken Sie daran, dass nur der gesamte Guid fast sicher einzigartig sein soll. Das gilt nicht unbedingt für einen Teil der Zeichenfolgendarstellung. Siehe http://blogs.msdn.com/oldnewthing/archive/2008/06/27/8659071.aspx – VolkerK
String.Left() wäre String.Substring() in C# – sshow
Nach einigen googeln fand ich, wie uniqid Werke PHP und implementiert es in C#:
private string GetUniqID()
{
var ts = (DateTime.UtcNow - new DateTime(1970, 1, 1, 0, 0, 0));
double t = ts.TotalMilliseconds/1000;
int a = (int)Math.Floor(t);
int b = (int)((t - Math.Floor(t)) * 1000000);
return a.ToString("x8") + b.ToString("x5");
}
Dieser Code genau das gleiche Ergebnis liefert, ist der einzige Unterschied, dass zusätzliche Parameter uniqid() nicht umgesetzt werden.
- 1. php uniqid() Fehler
- 2. md5 (uniqid) ist sinnvoll für zufällige eindeutige Token?
- 3. Beim Einfügen von uniqid() in die Tabelle ID wird nicht richtig eingefügt
- 4. Welche möglichen Zeichen könnten als Ergebnis von PHPs uniqid() zurückgegeben werden?
- 5. Warum gibt PHPs uniqid nur 13 Ziffern zurück und nicht 14?
- 6. Umschreiben von C++ - Methoden in C
- 7. Konvertieren eines Projekts von C++ in C#
- 8. Objective-C-Äquivalent von "override" in C#
- 9. Lernen C von einem Hintergrund in C#
- 10. Schreiben von Webservice in C/C++
- 11. Importieren von C++ - Enumerationen in C#
- 12. VARIANT-Datentyp von C++ in C#
- 13. Vergleichen von Strukturen in C vs C++
- 14. Konvertieren von C++ - Code in C# -Code
- 15. Getting in unmanaged C++ - Funktionen von C#
- 16. Umleiten von C++ printf in C#
- 17. Aufruf von C-Funktion von Perl in Embedded-C-Anwendung
- 18. Verwendung von Zeiger zurückgegeben von C-Bibliothek in C++
- 19. C# Scripting von C++?
- 20. von C++ zu C#
- 21. Aufruf von Visual C++ - Code von C#
- 22. Weiterleiten von Ereignissen in C#
- 23. Lesen von XML in C#
- 24. C# Bestellung von in foreach
- 25. Auflisten von Dateihandles in C#
- 26. Erzeugung von Zufallszahlen in C
- 27. Verwenden von RSA in C#
- 28. Zuordnung von Dateideskriptoren in C
- 29. Verhalten von && in C Programmiersprache
- 30. Festlegen von Standardschriftarten in C#
Ist das ähnlich zu GUID in .NET-Begriffen? –