Seite 1 von 1

SystemRandom auf welchen Plattformen verfügbar?

Verfasst: Sonntag 1. April 2012, 17:20
von heiliga horsd
Hallo,

auf welchen Systemen ist SystemRandom verfügbar? Ich brauche echte Zufallszahlen und bin heilfroh, dass Python etwas in der Stdlib hat, was mir echte Zufallszahlen liefert. Nun wäre es für mich wichtig zu wissen, auf welchen Systemen auer Windows und Linux das noch funktioniert. Bei den BSD-Derivaten funktioniert das meiner Vermutung nach auch, aber bei Mac OS X bin ich mir da nicht sicher. Vielleicht kann mir hier jemand nähere Auskunft geben?


Lg HH

Re: SystemRandom auf welchen Plattformen verfügbar?

Verfasst: Sonntag 1. April 2012, 17:38
von pyuser
Echte Zufallszahlen wirst du nicht bekommen, sondern nur kryptographisch sichere Pseudozufallszahlen (via CSPRNG).

Schaue dir mal den Abschnitt Python unter http://en.wikipedia.org/wiki/Random_password_generator an.

Re: SystemRandom auf welchen Plattformen verfügbar?

Verfasst: Sonntag 1. April 2012, 17:41
von heiliga horsd
Danke für den Link!

Ich will die Zufallszahlen auch kryptographisch nutzen, von dem her reicht mir der "Zufallsgrad". In dem Link steht, dass OS X auch unterstützt wird. Trotzdem würde mich interessieren, unter welchen Betriebssystemen diese Methode nicht funktioniert.

Re: SystemRandom auf welchen Plattformen verfügbar?

Verfasst: Sonntag 1. April 2012, 18:03
von BlackJack
@heiliga horsd: DOS vermute ich mal zum Beispiel. :-)

Re: SystemRandom auf welchen Plattformen verfügbar?

Verfasst: Sonntag 1. April 2012, 18:25
von Darii
heiliga horsd hat geschrieben:Bei den BSD-Derivaten funktioniert das meiner Vermutung nach auch, aber bei Mac OS X bin ich mir da nicht sicher.
OSX ist ein BSD-Derivat.

Re: SystemRandom auf welchen Plattformen verfügbar?

Verfasst: Sonntag 1. April 2012, 19:04
von heiliga horsd
BlackJack hat geschrieben:@heiliga horsd: DOS vermute ich mal zum Beispiel. :-)
Ja OK, aber das ist ja jetzt kein BS das von ner größeren Nutzerbasis im alltäglichen Gebrauch verwendet wird sag ich mal... Die Windows 3 Zeiten sind ja schon seit einiger Zeit um...

Re: SystemRandom auf welchen Plattformen verfügbar?

Verfasst: Sonntag 1. April 2012, 23:00
von DasIch
Läuft problemlos unter OS X.

Code: Alles auswählen

DasIch at Daniels-MacBook-Air in awwparse on git:master? working on awwparse
% python
Python 2.7.1 (r271:86832, Jul 31 2011, 19:30:53) 
[GCC 4.2.1 (Based on Apple Inc. build 5658) (LLVM build 2335.15.00)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> from random import SystemRandom
>>> SystemRandom().random()
0.03604346283017357
Prinzipiell kann man erwarten dass es überall funktioniert. Auf den obskuren Systemen auf denen es nicht läuft würde ich einfach eine Exception werfen.

Re: SystemRandom auf welchen Plattformen verfügbar?

Verfasst: Montag 2. April 2012, 07:13
von snafu
`SystemRandom()` greift intern auf die Generierung von Zufallszeichen durch `os.urandom()` zurück. Ich lese mal dessen Doku vor:
On a UNIX-like system this will query /dev/urandom, and on Windows it will use CryptGenRandom. If a randomness source is not found, NotImplementedError will be raised.
Du kannst eine Fehlerausgabe / Fallback-Behandlung oder was auch immer also am Besten durch Abfangen des `NotImplementedError`s machen.

Oder interessieren dich wirklich explizit die Namen der einzelnen Betriebssystem (was du ja ursprünglich auch gefragt hattest)? Wenn ja, warum eigentlich?

Re: SystemRandom auf welchen Plattformen verfügbar?

Verfasst: Dienstag 3. April 2012, 19:06
von heiliga horsd
Nunja, ich wollte halt nicht, dass jemand das Programm, welches ich schreibe, auf seinem PC ausführt und anschließend wird das von dem System nicht unterstützt. Aber da wohl die wenigsten heutzutage noch mit DOS arbeiten werden und die meistgenutzten Betriebssysteme eh Windows, Linux und OSX sind, ist das Problem an sich geklärt. Da Solaris und BSD ja auch unixoide Systeme sind werd ich das Problem wohl da auch nicht haben. Nur die älteren Windows-Versionen wären da noch interessant zu wissen, immerhin sind ja nach wie vor Leute mit Windows 98 unterwegs...

Re: SystemRandom auf welchen Plattformen verfügbar?

Verfasst: Dienstag 3. April 2012, 21:00
von DasIch
Bei älteren Windows Versionen wie Windows 98 wird die Verfügbarkeit von SystemRandom weniger ein Problem sein als die Verfügbarkeit eines Python Interpreters.

Re: SystemRandom auf welchen Plattformen verfügbar?

Verfasst: Dienstag 3. April 2012, 22:15
von snafu
@DasIch: Also bis Python 2.5 wurde Windows 98 noch offiziell unterstützt. `SystemRandom()` wiederum gibt es seit Python 2.4. Und bevor du jetzt einwendest, das nutze ja keiner mehr, wegen Sicherheitsaspekten und so: Nun ja, einem Windows 98 User kann man das durchaus zutrauen. Bleibt aber trotzdem die Frage, inwiefern diese Konstellation hier wirklich praxisrelevant ist...

Re: SystemRandom auf welchen Plattformen verfügbar?

Verfasst: Mittwoch 4. April 2012, 08:55
von snafu
heiliga horsd hat geschrieben:Nunja, ich wollte halt nicht, dass jemand das Programm, welches ich schreibe, auf seinem PC ausführt und anschließend wird das von dem System nicht unterstützt.
Falls es dir um eine README-Datei geht, welche den Benutzer über die Anforderungen informiert, dann mach doch eine Art Whitelist: Erwähne die Systeme, von denen bekannt ist, dass dein Programm mit ihnen funktioniert und dass die Liste ständig erweitert wird bzw man sich als User melden soll, sofern das eigene System noch nicht erwähnt wurde.

Re: SystemRandom auf welchen Plattformen verfügbar?

Verfasst: Mittwoch 4. April 2012, 16:26
von heiliga horsd
@snafu: Ja, das wäre eine gute Idee. Wahrscheinlich werde ich auch den Fehler fangen und ne Meldung ausgeben, dass das System nicht unterstützt wird.

Problem wäre somit geklärt, danke an alle!

Gruß HH