Wenn ich os.urandom (64) anrufe, bekomme ich 64 zufällige Bytes. Mit Bezug auf Convert bytes to a Python string habe ich versucht,Wie kann ich einen Python-Urandom in einen String konvertieren?
a = os.urandom(64)
a.decode()
a.decode("utf-8")
aber bekam den Traceback-Fehler besagen, dass der Bytes nicht in utf-8.
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
UnicodeDecodeError: 'utf-8' codec can't decode byte 0x8b in position 0: invalid start byte
mit dem Bytes
b'\x8bz\xaf$\xb6\x93q\xef\x94\x99$\x8c\x1eO\xeb\xed\x03O\xc6L%\xe70\xf9\xd8
\xa4\xac\x01\xe1\xb5\x0bM#\x19\xea+\x81\xdc\xcb\xed7O\xec\xf5\\}\x029\x122
\x8b\xbd\xa9\xca\xb2\x88\r+\x88\xf0\xeaE\x9c'
Gibt es eine Methode, um dieses fullproof Bytes in eine String-Darstellung zu entschlüsseln? Ich erzeuge sudo zufällige Token, um die zugehörigen Dokumente über mehrere Datenbank-Engines hinweg zu verfolgen.
Odd Art und Weise, es zu tun ... Warum nicht einfach eine „zentrale“ db haben, der seine eigene ID erzeugt, die an die anderen IDs bezieht sich ... ? Oder, anstatt "Urandom" zu verwenden - warum nicht UUID4 oder ähnliches verwenden? –
Kann dies auch verwendet werden, um einen zufälligen Samen zu erzeugen? – Pinocchio
Djangos generieren zufällige String-Logik. https://github.com/django/django/blob/master/django/utils/crypto.py#L51 – bgth